javascript阶段一(js变量,运算)
js编写位置
第一种方法是在html中javascript语句必须编写在标签中
可以把js脚本写在head和body中
<head>
<script>
//js代码1
</script>
</head>
<body>
<script>
//js代码2
</script>
</body>
w3c建议js脚本放在head标签中
两者区别:
head标签中的js脚本只有在调用的时候才执行
body标签中的js脚本在页面加载的时候就会执行
第二种方法js脚本放置在外部文件中,一个单独的js文件
相同的js文件被多个页面重复使用的时候可以使用外部文件
使用方法是在使用
<html>
<head>
<script src=”xxx.js”></script>
</head>
<body>
</body>
</html>
xxx.js文件就可以写具体的js代码,在这个js文件中不用谢标签
js变量
js变量命名规则
js的变量属于松散型变量,也就是说可以用来保存任何类型的变量
js变量本质上是一个标识符
注:在javscript中,变量,函数,对象,属性狠人参数都是标识符
标识符命名规则:
1:不能以数字(0-9)开头,只能以字母(A-Z,a-z)、下划线(-)或者美元($)开头
2:后续字符可以是字母,下划线和美元符,也可以是数字
3:不能含有js保留的关键字和保留字
js大部分关键字:
break
case
catch
continue
default
delete 删除对象属性
do es6中语句
else
finally
for
function
if
in in for用于遍历对象
instanceof
new
return
switch
this
throw 操作异常
try
typeof
var
void
while
js保留字:
abstract
enum
int
short
boolean
export
interface
static
byte
extends
long
super
char
final
native
synchronized
class
float
package
throws
const
goto
private
transient
debugger
implements
protected |
volati
le
double
import
public
js变量类型
基本类型
基本类型的值在内存中占据固定大小的空间,因此被保存在堆内存中
五种:
number:数字类型
string:字符串类型
boolean:布尔值 只有两个值 true或false
undefined:没有值的变量
null:nothing的意思,不存在,可以设置null清空对象
注:underfined与null值相等,但是类型不相等
引用类型
引用类型是保存在内存中的对象,其指针指向同一个内存,由于其可以无限复制内容,操作对象的时候操作的是对象的引用而不是实际的对象。
引用类型统称为object类型,如果细分可以分为5种:
object
array
date
regexp
function
类型转换
js类型装换分为显示类型转换和隐式类型转换,每种转换又分为原始类型转换和对象类型转换
这点内容比较多我单独写了一篇文章
javascript中类型转换
本来打算写一下变量提升的,但是这点我理解的不是很透彻,等我弄懂了在单独写一篇变量提升的笔记
js运算
四则运算
四则运算符是加减乘除, 其中加法比较特殊,除了普通的加法运算还可能存在字符串拼接,除了加法运算,其他运算都是四则运算。
判断方法:在加法运算中一旦遇到字符串就是字符串拼接
console.log('10' + 10) // 1010 出现字符串 是字符串拼接
console.log('10' - 10) // 0 减法一定是做数学运算
console.log('10px' - 10)// NaN
console.log(10 + null + true + [] + undefined+ '张三' + [] + 10 + false ) // 11undefined张三10false 出现字符串‘张三’就是字符串拼接
true + true // 2
1 + true // 2
[1] + 5 // '15'
其他运算
减法 除法,乘法都不会发生重载,运算规则是转化为数值再进行相应的数学运算
1 * '2' // 2
1 * [] // 0
逻辑运算符
逻辑运算符分为条件判断和赋值判断
条件判断:
&&:所有条件为真,整体才为真
||:只要有一个条件为真,整体就是真
true && true // true
true && false // false
true || true // true
true || false // true
赋值操作
A&&B
首先看 A 的真假, A 为假,返回 A 的值, A 为真返回 B 的值。(不管 B 是啥)
console.log(0 && 1) // 0
console.log(1 && 2) // 2
A||B
首先看 A 的真假, A 为真返回的是 A 的值, A 为假返回的是 B 的值(不管 B 是啥)
console.log(0 || 1) // 1
console.log(1 || 2) // 1
比较运算符
比较运算符在逻辑语句中使用的时候模式用来判断变量或值是否相等
=== 是严格意义上的相等,会比较两个操作符的类型和值。只有类型和值都相等才相等,先比较类型然后比较值
==是非严格意义上的相等,先判断两个操作符的类型是否相同,不相同的话先进行类型转换,然后在比较值是否相等。
null == undefined -> true
String == Number -> 字符串转数字,再比较
Boolean == Number -> 布尔转数字,再比较
Object == String,Number,Symbol -> Object 转化为原始类型
一个小的知识点:
i++先用在加
++i 加完在用