1.综述
1.1类型分类
原始类型和对象类型
原始类型包括:数字,字符串,布尔值和null (空)和undefined(未定义)。
其他的是对象,对象是属性的集合,每个属性都由“名/值对”,
还有一个特殊的对象,全局对象。
还有常见的数组。
还有特殊的函数。
函数就要说到构造函数,使用new来新建一个,
其他的类:
正则(RegExp)
错误(Error)
日期(Date)
拥有方法的类型和不能拥有方法的类型
可变类型(对象和数组)和不可变类型(数字,布尔值,null,undefined,字符串)
1.2 数字
1.2.1 整形直接量
有十进制,十六进制,八进制
1.2.2 浮点型直接量
3.14 6.02e23
这种都可以
1.2.3 js中的算术运算
加减乘除取余取模
Math对象的属性:
Math.round()四舍五入
Math.ceil()向上取整
Math.floor()向下取整
Math.abs()取绝对值
Math.random()生成0到1的随机数
Math.PI 圆周率
Math.sqrt() 3的平方根
超出上限用Infinity表示
超出下限用 -Infinity表示
1.2.4 二进制浮点数和四舍五入错误
1.2.5 日期和时间
就是Date()构造函数
1.3 文本
1.3.1 字符串直接量
1.3.2 转义字符
就是反斜后面加一个字符。
1.3.3 字符串的作用
字符串的连接。还有许多方法
var s=“hey kong”;
s.charAt(0); //获取第一个字符
s.subString(1,4); //获取第2-4个字符;
//等等
1.4 布尔值
转换为false的: undefined,null,0,-0,NaN,空字符串
其他的转换为true :就是数组和对象
1.5 null和undeifned
null是空值,可以认为是一个特殊的对象值,含义是非对象,
undefined是变量没有初始化。
1.6 全局对象
1.7 包装对象
含义:存取字符串,数字或者布尔值的属性时临时创建的临时对象。
用来处理属性的引用,一旦属性引用结束,包装对象就会销毁。
var s = “hey kong”;
var word = s.subString(2,4);
只要引用了字符串s的属性,Js就会将字符串值通过调用new String(s)的方式来转换成对象。一旦这个属性引用结束,这个新创建的对象就会销毁。
数字和布尔值就是用 new Boolean() 和 new Number()来转换的。
其实这里涉及到了别的数据类型转换成对象类型。
对象就转换为自身。
undefined和null转换为空对象{}。
string,number,boolean转换为包装对象。
强制转换就是Object()。
1.8 不可变的原始值和可变的对象引用
js中的原始值(undefined,null,布尔,数字,字符串),任何办法都无法更改。
1.8 类型转换
1.8.1 显示类型转换
除了null和undefined 之外的任何值都具有toString()方法。
1.8.2 对象转换为原始值
两个方法
toString() 将其转换为字符
valueOf()默认将对象转换为表示他的原始值。但是默认返回对象本身。
从对象到字符串
如果对象具有toStirng(),就调用这个方法。返回一个字符串
如果没有,就先调用valueOf(),返回值是原始值就将这个值转换为字符串。
最后将原始值转换String类型。
从对象到数字
先调用valueOf()方法,结果是原始值,返回。
在调用toString()方法,结果是原始值,返回,
最后将原始值转换为Number类型。
1.9 变量声明
var a;//a的原始值是undefined。
1.10 变量作用域
有全局变量和局部变量
局部变量回覆盖外面的全局变量。
1.10.1 函数作用域和声明提前
就是在声明之前甚至已经可用。