笔记目录
- 一、语言基础
一、语言基础
1、语法
1、js中的一切都区分大小写,关键字不能当做函数名
2、js中的标识符(第一个字符必须是一个字母、下划线或者$符号),使用小驼峰命名方式
3、单行注释和多行注释
4、严格模式("use strict";),相当于是一个预处理指令,所有的浏览器都支持严格模式
5、语句,分号代表语句结束,花括号包括多行代码块
2、关键字与保留字
1、关键字与保留字不能当做函数名和属性名
3、变量(变量是松散类型的,可以保存任何类型的数据,通过var,let,const来声明)
1、var关键字,(如果不初始化的话,变量存的是undefined。定义多个变量可通过逗号隔开)
注意:
1、var 声明作用域:使用var定义的变量会成为包含它的函数的局部变量,在函数外是访问不到这个变量的,会报错。
2、var 声明提升:把所有的变量声明都放到函数作用域的顶部(只是声明变量,不会赋值,一般变量为undefined)
3、可以多次反复多次的声明同一个变量
4、var声明的变量可以通过widow.变量名获取到
5、通过for循环定义的迭代变量会渗透到循环体外面,循环体外面也可以访问定义的迭代变量。
2、let关键字,
注意:
1、let声明的范围是块级作用域,而var声明的范围是函数作用域
2、let声明的变量不会在作用域内提升。
3、let声明的变量不允许重复声明。
4、let声明的变量不会成为window对象的属性
5、通过let定义的for循环内的迭代变量,循环体外部是访问不到的。(因为let范围是块级作用域)
3、const关键字,(在声明变量的时候必须赋值,并且声明过的变量不允许修改(对象除外),也不允许重复声明变量)
注意:
1、const声明的变量只适用于它指向的变量的引用。如果const指向的是一个对象,那么修改这个对象内部的属性也是可以的。
2、换句话说,const不能改变是内存地址,但是可以改变引用类型的属性值
4、数据类型(Number,String,Boolean,Object,Null,Undefined 6大数据类型)
1、typeof操作符,通过typeof来判断数据的类型
注意:
1、null返回的数据类型是Object
2、NaN不是数据类型,而是一种特别的数值,数据类型属于Number,它不等于任何值包括自己
3、array返回的也是Object
2、instanceof可以区分数组和对象。返回true和false
还有一种用法就是来验证一个对象是不是指定的构造函数的实例,返回true
3、Undefined 类型,
1、undefined == null 返回的true,都代表没有,全等情况下是false
2、null相当于一个空对象,但是undefined标识无定义的
3、如果转化数值的情况下,null相当于0,但是undefined相当于NaN(表示的是非数字)
4、Null 类型,null值代表一个空对象的指针
5、Boolean 类型, true 转换为1, false 转换为0
注意:
1、转换之后是false的:null、undefind、0、 ''、 false 、NaN
6、Number 类型,
注意:
1、有一个特殊的数值叫 NaN ,意思是“不是数值”(Not a Number)
2、空字符串转为0,undefined转为NaN,null转为0
3、只要有一个字符转不了数字的话就是NaN
4、Number() 、 parseInt() 和 parseFloat()
7、String 类型
注意:
1、toString(),不能将null和undefined转为字符串,会报错的
2、String()
3、将字符串通过加号拼接的时候也可以转为字符串(不会隐式转换) "5" + 2 // 返回 52 因为 2 被转换为 "2"
8、Symbol 类型,符号是原始值,且符号实例是唯一、不可变的。