变量
目录1. 变量基础
-
JS是一门弱类型语言,这意味变量的类型不是固定的,变量可以随时从一种类型转换为另一种类型
var i = 1; i = "abc"; alert(i); //输出结果为abc
-
JS有五种类型的变量:
- number 数值类型(包含了Java中int,float,double等数值类型)
- string 字符串类型
- object 对象类型
- boolean 布尔类型
- function 函数类型
-
JS中特殊的值
- undefined 未定义:所有js变量未赋予初始值的时候,默认值都是undefined
- null 空值
- NaN 非数字,非数值
-
typeof() 可以用来检查一个变量的类型
2. 强制类型转换
-
将其它数据类型转换为String
方式一:
- 调用被转换数据类型的toString()方法
- 该方法不会影响到原变量,它会将转换的结果返回
- null和undefined这两个值没有toString()方法
方式二:
- 调用String()函数,并将被转换的数据作为参数传递给函数
- 使用String()函数强制类型转换时
- 对于Number和Boolean实际上就是调用的toString()方法
- 对于null和undefined,会将null和undefined转换为字符串形式
-
将其它数据类型转换为Number
方式一:
- 使用Number()函数
- 如果是纯数字的字符串,则直接将其转换为数字
- 如果字符串中有非数字的内容,则转换为NaN
- 如果字符串是一个空串或者一个全是空格的字符串转换为0
- 对于布尔值true转成1,false转成0
- null转换成0,undefined转换为NaN
方式二:
- 这种方式只适用于字符串
- parseInt() 把一个字符串转换为一个整数
- parseFloat() 把一个字符串转换为一个浮点数
- 使用Number()函数
3. 关系运算
-
==
(等于):等于只会做简单的字面值的比较,比如:"12" == 12,返回值为true===
(全等于):除了做字面值的比较之外,还会比较两个变量的数据类型- NaN永远不会等于任何数,即便是它自己。如果要判断NaN可以使用isNaN()函数
-
&&(且运算):当表达式全为真的时候,返回最后一个表达式的值;当表达式中有一个为假的时候,返回第一个为假的表达式的值
||(或运算):当表达式全为假时,返回最后一个表达式的值;只要有一个表达式为真,就会返回第一个为真的表达式的值
JS中的逻辑运算符也具有短路特性