javascript权威指南笔记[1-5]
1.javaScript的数据类型分为两类:原始类型和对象类型;
2.javaScript中除了数字,字符串,布尔值,null,undefined之外就是对象了;
3.对象(object)是属性(property)的集合,每个属性都由“名/值”构成;
1.普通对象:“命名值”的无序集合
2.数组对象:带编号的值的有序集合
3.函数对象:函数是具有与它相关联的可执行代码的对象
4.类是对象类型的字类型
1.Array
2.Function
3.Date
4.RegExp
5.Error
5.字符串(String)是一组由16位值组成的不可变的有序序列,每一个字符通常来自Unicode字符集;字符串的长度就是锁含16位值的个数;
6.Js中任何值都可以换换位boolean,下面的会转换为false
undefined
null
0
-0
NaN
"" //空字符串
其他的都多有值,包括所有对象(数组)都会转换为true
7.包装对象
例:var index = "hello World".indexOf("W");
字符串不是对象,但是却具有方法;
只要引用了字符串的属性(方法),JS就回奖字符串通过调用new String(s)打的方式将其转换为对象,然后再来处理方法的调用,一旦调用结束酒将这个创建的对象销毁;
8.typeOf
typeof "hello" //==> string
typeof new String("hello") //==> object
"hello" == new String("hello") //==>true
"hello" === new String("hello") //==>false
9.类型转换
![](https://img2018.cnblogs.com/blog/1012917/201904/1012917-20190420165919004-1587078055.png)
10.对象转换为原始值
所有的对象都转换为true,new Boolean(false)是一个对象,所以也会转换为true;
11.函数作用域(Js中没有块级作用域)
![](https://img2018.cnblogs.com/blog/1012917/201904/1012917-20190420170009110-127688810.png)
12.提前声明
![](https://img2018.cnblogs.com/blog/1012917/201904/1012917-20190420170026660-1716570080.png)
13.作用域链
![](https://img2018.cnblogs.com/blog/1012917/201904/1012917-20190420170049074-1208105546.png)
14.typeof的用法
![](https://img2018.cnblogs.com/blog/1012917/201904/1012917-20190420170105383-424557856.png)
![](https://images.cnblogs.com/cnblogs_com/dafengdeai/1629236/o_200111040218222.png)