数据类型
undefined, null, boolean, string, symbol, number, object
对象枚举
当使用for…in…方法对一个对象进行枚举时,访问对象的内部属性只能使用方括号形式[]访问。
比如 obj.name ---->等价于 obj[“name”]
obj = {
name: “LiHua”,
age: 23
}
for (prop in obj) {
console.log(obj.prop) // undefined 这种写法等于 obj.[“prop”],它没有取出prop变量里面的字符串。
}
只能写作
for (prop in obj) {
console.log(obj[prop]);
}
DOM 操作
document.getElementById(“id名称”) 返回的是一个element元素
document.getElementsByTagName(“tag名称”) 返回的是一个NodeList 对象
document.getElementsByClassName(“class名称”)返回的是一个NodeList 对象
document.querySelctor(“CSS选择符”) 返回的是与选择符匹配的第一个元素,注意这里是元素。
document.querySelctorAll(“CSS选择符”)返回的是与选择符匹配的所有元素的集合,也是一个NodeList对象。
NodeList对象的成员可以用数组方式访问(nodelist[i]),也可以用item()方法访问(nodelist.item(i))。
JavaScript模块化规范
前端的模块管理器一般指管理 AMD 或者 CommonJS 模块的东西。
我们有很多方式来描述 JS 中多个库或类的交互方式,比如 exports 和 requires。你可以按照 AMD 或者 CommonJS 的 API 来书写 JS,然后用 Browserify 将它们打包。
非常重要,Vue和React的各种组件,都是使用ES6的模块语法。
Node.js的模块,暂时还不能直接使用。
主要有两种模块:
一种是ES6中的模块,这是未来的方向,主要使用export和import
另一种是Node.js主流版本所使用的模块,主要使用export和require
当前,这两种都是需要掌握的。
新的浏览器支持ES6的模块,但Node 8不支持。
类似于组件化开发(CBD)概念
方法是:
使用
注意:
与Node.js模块相区分。
- CommonJS(node.js支持这种规范)
- AMDAMD ( https://en.wikipedia.org/wiki/ Asynchronous_ module_ definition )也是一种JavaScript模块化规范,与CommonJS 最大的不同在于,它采用了异步的方式去加载依赖的模块。AMD规范主要用于解决针对浏览器环境的模块化问题,最具代表性的实现是requirejs (http://requirejs. org )
- ES6