ECMAscript定义了js的语法规范
变量:存储数据容器
关于变量本质的理解:
1、内存中一个存储单元
2、计算机执行的程序都会被加载来内存执行
3、内存会被分成两个区域:栈区域和堆区域
4、var num 创建的变量被存储栈区域
5、理解:
var num=10
先在内存中分配一个存储党员,num指向这个存储单元
将10存储到名为num的存储单元中
数据类型:存储数据的类型
JavaScript语法
数据类型
基本数据类型
数值类型 number
数值类型都是(二进制,八进制,十六进制)
NaN: not a number ,非数字(也表示数值类型的一个值)
字符串类型 string
值是用引号 '' ""
布尔类型 boolean
true | false
未定义的 undefined
=》var a
空类型 null
var obj=null
复杂数据类型
Object 对象
Function 函数
检查基础数据类型 typeof(变量)
数据类型转换
其他数据类型转换为number
Number() 转换之后的值
null转换之后输出的是0
true => 1
false => 0
undefined=> NaN
parseInt()
从第一位开始,是数字就转换,直到不是数字的那个
第一位就不是数字的话,就直接输出NaN
输出转换后的数字
常用于取整 因为识别不了小数点
parseFloat()
和parseInt一样,但是可以识别小数点
隐式转换 除加法以外的数学运算
常常用 -0,*1 将其他数据类型转换为数值类型
其他数据类型转换为字符串
String(变量) 返回转换之后的值
任意类型都可以转换成string
变量.toString() undefined类型和null类型不能用这个方法
加法运算:+号可以实现隐式类型转换
只要+号的一边是字符串类型,就会进行字符串拼接
只有当两边都是数值类型时,才会进行数值加法运算
其他数据类型转换为布尔类型
Boolean()
只有 '' 0 null undefined NaN 是false
其他的都是true
运算符:
数学运算符:+ - * / %(取余)
赋值运算符:=(赋值) += -= *= /= %=
比较运算符:==(值) ===(值和数据类型) !=(不等于) !== >= <= > <
逻辑运算符:&&(逻辑与) ||(逻辑或) !(逻辑非) 布尔类型
补充:逻辑与运算时,左边如果是false,右边不会参与运算
自增自减运算符(一元运算符):++(自增,分为前置和后置) --(自减,分为前置和后置)
条件运算符(三目运算符):
运算符优先级: