变量
声明变量
- undefined— 声明但未赋值
- JavaScript允许未声明就直接为变量赋值,JavaScript会将其视为全局变量,函数外代码可访问该变量的值
- 使用var语句声明的变量是永久的,不能用delete删除
- var语句的使用范围有限,不能在循环或条件语句的条件表达式中使用,但能在for或for-in语句的条件表达式中使用
赋值变量
-
变量提升只对var命令声明的变量有效,若变量不是var声明的,就不会发生变量提升
var a; console.log(a); a=1;
显示结果是undefined
变量的作用域
- 全局作用域
- 函数作用域(局部作用域)
数据类型
检测类型
- null—空值
- undefined—未定义
- number—数值
- string—字符串
- boolean—布尔值
- object—对象
使用 typeof 运算符可检测数据类型
【注】typeof 运算有两个特殊的返回值:把 null 标识为 object,把 function () {} 标识为 function 类型
数值
- JavaScript 不细分整型、浮点型,所有数值都属于浮点数
- JavaScript 支持八进制和十六进制数值直接量
- 十六进制以“0X”或“0x”为前缀,八进制以数字0为前缀
- 特殊数值:
Infinity —正无穷大,负无穷大为-Infinity
NaN—非数值(如0除以0的返回值)
Number.MAX_VALUE—最大值
Number.MIN_VALUE—最小值,接近0
Number.NaN—非数值,与NaN相同
Number.POSITIVE_INFINITY—正无穷大
Number.NEGATIVE_INFINITY—负无穷大 - 若NaN参与数学运算,返回结果都是NaN
- 可用 isNaN() 方法检测NaN
字符串
- 转义序列
\0 —null字符
\b —退格符
\t —水平制表符
\n —换行符
\v —垂直制表符
\f —换页符
\r —回车符
" —双引号
’ —单引号
\ —反斜线 - 使用 + 号可以连接两个字符串
布尔值
【在JavaScript中,undefined、null、" "、0、NaN、false这6个特殊值转换为逻辑值时都为false,俗称为假值】
运算符
加法运算
-
能够根据运算数的数据类型,尽可能地把数字转换成可以执行相加或相连接运算的数值或字符串。
alert(3.0+4.3+""); //7.3 alert(3.0+""+4.3); //34.3
减法运算
- 减法运算中,若有一个运算数不是数字,则返回值为NaN;若数字为字符串,则将其转换为数值之后在运算。
转换为字符串
-
使用加号运算符
-
使用 toString() 方法
var a=new function(){}(); a=a+""; alert(a); //返回字符串"[object object]"
var a=1+1+"a"; var b="a"+1+1; alert(a); //返回2a alert(b); //返回"a11"
转换为数字
- 使用 parseInt()
alert(parseInt("123abc")); //123 alert(parseInt("1.72")); //1 alert(parseInt(".13")); //NaN
- 使用parseFloat()
alert(parseFloat("1.232.5")); //1.232
- 使用乘号运算符
强制类型转换
- Boolean(value)
- Number(value)
- String(value)