标识符
1.大小写敏感
2.使用下划线、字母、Unicode中的语言字符、美元符号开头,可以包含数字
3. 不能是保留字和关键字
>合法示例:strUserDesc / s1 / $q / 我是Sid / _length / q_s
>非法:1s / #q / q-s / q#s / false
>驼峰命名法与匈牙利命名法:类型+表意
严格模式
作用:消除ECMAScript老版本中的不合理、不严谨、不安全之处,提升效率,为ECMAScript的新版本做准备
范围:函数范围的严格模式,整个脚本的严格模式
影响:>变量的严格声明
> 禁止动态绑定:不得使用with,eval作用域 【https://blog.csdn.net/zwkkkk1/article/details/79725934】【eval和with可以在运行时修改或创建新的词法作用域,避免使用】
> 不能删除变量,即不能 delete strUserDesc
数据类型
> 简单数据类型 Undefined / NULL / String / Number / Boolean
>Undefined类型
1.值定义后没有初始化
2. 值定义后,使用undefined来初始化
3. 值为 undefined
> Null 类型
1. 空对象的指针
2. 可用于对象变量的初始化
> Null 与Undefined的区别
1. Number(null) = 0, Number(undefined) = NaN
2. null : 没有对象 ,undefined: 缺少值
> Boolean类型
1. 只有两个值:false / true
2. 作用:条件判断
3. 其他类型,可以使用Boolean() 函数转换为布尔值
4. Boolean()
可转换为false的: ' ',0,NaN,null,undefined
>Number 类型
1. 整数和浮点数
2. 三种进制(八进制,十六进制,十进制)
3. E表示法 var s = 2e3; 2000
4. Number.MAX_VALUE / MIN_VALUE / Infinity / -Infinity / isFinite()
5. NaN / isNaN()
isNaN() 返回true: 'sdff','fgg1233',
6. Number()
Number()=>NaN: '13a' ,'asd134',NaN,undefined,{}
7. parseInt() / parseFloat()
>String 类型
1. 单引号与双引号完全相同
2. toString() / String() 转化为字符串类型
>复杂数据类型 Object
1. 成员:值或函数方法
2. 无序
3.检测变量类型 typeof
> 操作符
>检查数据类型或函数
> 检查结果:undefined / boolean / string / number /object / function
操作符
> && : 第一个值为false ,直接返回false
第一个值为true,直接返回第二个值
> || : 第一个值为false,直接返回第二个值
第一个值为true, 直接返回true
> ==与===:== 会先进行类型转换
=== 比较值与类型