1.字符串和数值类型
- +:表示拼接,
- -:存在类型转换
- eg:“100”+ 50 -“50” :先拼接:10050,再计算:50转换为数值类型 10050-50=10000
2.数组的方法push()
- 一次只可以插入一个数值,当存在多个数值时,后面的会覆盖前面的数值。插入的数值是最后一个数值。push()可以插入一个数组,形成二维数组
3.对象和数组
- console.log([] ? true : false); //true
- console.log({} ? true : false); //true
- console.log([] == false); //true
- console.log(NaN == NaN); //false
- 总结
- 作为条件判断:[ ]—true { }—true 0—false ‘0’—true
- 作为比较判断:[ ]—false([]转换成0)
- 转换为布尔值为false: ‘’NaN undefined null 0
- 转换为数值类型
- 0: ‘’ false [ ]
- NaN: undefined { }
4.获取dom元素:querySelector—没有此元素时返回null
5.事件流:事件捕获 事件处理 事件冒泡
6.创建一个类
class Person {
constructor(name = 'cxk', age = '23') {
this.name = name;
this.age = age;
}
print() {
console.log(this.name);
}
}
class Students extends Person {
constructor(name) {
super(name);
}
print() {
super.print();
}
}
var s = new Students();
console.log(s.name);
var p = new Students('yl');
p.print();
类声明
class Person {
constructor(name='dg',age=60){ //相当于在函数里写了一个默认值
this.name = name;
this.age = age;
} //这里不用添逗号,否则会报错
showMsg(){ //定义在原型上
console.log(this.age,this.name)
}
print(){ //定义在原型上
console.log('xxx')
}
}
var p = new Person();
//我们来判断一下p.showMsg()是不是写在原型链上
console.log(Person.prototype.showMsg == p.showMsg(); //true
类表达式声明
const Person = class{
constructor(name){
this.name = 'xm'
}
}
var p = new Person();
类继承和绑定子类this的功能
class A{
constructor(name='cz'){
this.name = name;
}
print(){
console.log(this.name)
}
}
class B extends A{
constructor(name){
super(name)
}
print() {
super.print();
}
}
var b = new B();