1、js组成:
ECMAscript(基础语法)、Dom(文档对象模型)、Bom(浏览器对象模型)
2、数据类型:
基本类型:string number boolean underfined null
复杂类型:Array function object Date Math RegExp(正则表达式)
3、检测数据类型
typeof:能够检测基本数据类型(除了null),还可以检测函数
instanceof:判断数据类型,但不严谨
对象的toString方法:Object.prototype.toString.call(需要检测类型的数据),任意类型都可以检测。
NaN永远不等于其他的值,包括他本身。
隐式的转换成布尔类型!!
可以转换成布尔类型的false:false undefined null NaN 0 -0 ''
除了上面的都转换成布尔类型的true
4、in关键字的使用
for in 遍历对象和数组
判断对象中是否能够访问某个属性或者方法
判断数组中是否有某个下标
如果要判断一个数组中是否有某个元素,用indexof。如果存在这个元素就返回这个元素的下标,不存在就返回-1。
5、delete关键字的使用
删除没有使用var声明的变量
删除对象的属性和方法: delete 对象.属性名
(普通的对象没有removeAttribute这个方法,这个方法是dom对象的)
删除数组中的元素: delete 数组[下标]
删除后下标并不会进行往前挪动
6、逻辑中断(逻辑短路)
逻辑与表达式:如果参与逻辑与表达式运算的第一个式子 能够转换成布尔类型的false的话,那么整个逻辑与表达式的值就是第一个式子的值;如果第一个式子不能转换成布尔类型的false的话,那么整个逻辑与表达式的值就是第二个式子的值
逻辑或表达式:如果参与逻辑与表达式运算的第一个式子 能够转换成布尔类型true的话,那么整个逻辑与表达式的值就是第一个式子的值;如果第一个式子不能转换成布尔类型true的话,那么整个逻辑与表达式的值就是第二个式子的值
7、原型:其实是一个对象,任意构造函数在被创建,系统都会帮我们自动的生成一个对应的原型对象。
如何访问原型:构造函数.prototype
给原型添加属性和方法:构造函数.prototype.方法名或属性名
原型中的属性或者方法只能是这个原型对应的构造函数创建出来的对象
注意:如果自己内有这个方法名或属性名,就访问自己的;如果没有再去访问原型的。
8、__proto__属性 :对象.__proto__:获取的是创建该对象的构造函数对应的原型
__proto__不是标准的属性,所以以后开发(真实或生产)环境不要使用,自己调试程序,或者验证某种关系,可以使用。
9、constructor属性:原型中的属性,指向原型对应的构造函数
构造函数创建的对象中没有constructor属性,就去他的原型中查找这个属性,找到了,就是创建这个对象的构造函数。
网友评论