1、参考
- JavaScript 面试攻略
- JavaScript参考
2、js——引用类型和基本类型
基本类型:Number Boolean String undefined null
引用类型:Object Function
3、清除Chrome DevTools中的浏览器缓存时是否可以避免时间限制
Ctrl + F5 or Cmd + F5 (Mac)
4、JS中的单引号和双引号
5、Js作用域与作用域链详解
6、浅谈JS变量提升
1、变量的声明提前
- 使用var关键字声明的变量,会在所有的代码执行之前被声明(但是不会赋值),
但是如果声明变量时不使用var关键字,则变量不会被声明提前2、函数的声明提前
- 使用函数声明形式创建的函数 function 函数(){}
它会在所有的代码执行之前被创建,所以我们可以在函数声明前来调用函数- 使用函数表达式创建的函数,变量赋值不会被提前,所以不能在声明前调用
7、IIFE 匿名函数自执行
- 说一说JS的IIFE
- JS 匿名函数——几种不同的调用方式
8、Javascript 严格模式
- js严格模式与非严格模式的区别
- Javascript 严格模式详解
9、闭包. 闭包是指有权访问另一个函数作用域中的变量的函数
- 彻底搞懂JS闭包各种坑
- 深入理解JS闭包
10、事件过程。捕获与冒泡
JS之事件捕获和事件冒泡JS中事件冒泡与捕获
onclick与addEventListener区别
11、this
- 彻底搞懂 JS 中 this 机制
- JavaScript 的 this 原理
- 深入理解JavaScript this
- 箭头函数
- Java Lambda 与 匿名内部类的this 来分析
- C++ this 指针
12、 call apply bind
- JavaScript 中 call()、apply()、bind() 的用法
- 一文理解 this、call、apply、bind
- JS中的call、apply、bind方法详解
- [].slice.call() 原理分析
13、JS中比较与相加
- JS中比较
- js中如何判断一个变量是不是NaN?
- javascript不同类型数据之间的运算是如何转换的
14、对象
1、内建对象
- 由ES标准中定义的对象,
比如Math,String,Number,Boolean, Function,Objec …2、宿主对象
- 由JS运行环境提供的对象。主要是浏览器提供的对象,
比如Bom,Dom3、自定义对象
- 由开发人员自己创建的对象
创建对象
1、使用构造函数, let obj = new Object();
2、. [] 操作
- let obj = new Object();
obj.name = “zs”;
console.log(obj:${obj["name"]}
);
15、函数
1、函数也是一个对象
2、创建一个函数对象
- 可以将要封装的代码以字符串的形式传递给构造函数
var fun = new Function(“console.log(‘This is a function wrap’)”);
fun()3、函数表达式(匿名函数)
- let f = function() {
console.log('This is a function ');
}4、原型 prototype
- 我们创建的每一个函数,解析器都会向函数中添加一个属性prototype,这个属性对应着一个对象,这个对象就是我们所谓的原型对象。
- 如果函数作为普通函数调用,prototype没有任何作用
- 当函数以构造函数的形式调用时,它所创建的对象中都会有一个隐含的属性,指向该构造函数的原型对象,我们可以通过__proto__来访问该属性
- 原型对象就相当于一个公共的区域,所有同一个类的实例都可以访问到这个原型对象。我们可以将对象中共有的内容,统一设置到原型对象中。
- 当我们访问对象的一个属性或方法时,它会先在对象自身中寻找,如果有则直接使用,如果没有则会去原型对象中去寻找,如果找到则直接使用
- 帮你彻底搞懂JS中的prototype、__proto__与constructor(图解)
class Person {
constructor(name, age, sex) {
this.name = name;
this.age = age;
this.sex = sex;
}
say() {
console.log(`name:${this.name}, age:${this.age}`)
}
}
class Teacher extends Person {
constructor(name, age, sex, level) {
super(name, age, sex);
this.level = level;
}
tell() {
console.log(`level:${this.level}`);
}
}
let w = new Teacher("wangwu", 20, "男", 10);
console.log(w);
console.log(w.__proto__)
w.tell();
console.log("This is the end...");
16、Object
- js Object的属性 Configurable,Enumerable,Writable,Value,Getter,Setter
- Object.defineProperty 中的 writable 和 configurable 和 enumerable 的理解
- Javascript Object常用方法总结
- Object MDN
- js Object方法大全(自己整理)
19、JavaScript Date 对象
20、JavaScript Math 对象