ctrl+shift+/ 多行注释
arguments可以接收到该函数的所有实参
js没有块级作用域
为了弥补这个错误,es6中提供了let变量
找一个变量时,会涉及作用域链
var num = 10
function fun(){
var num = 20 外部变量
function fun(){
console.log(num)
//结果会返回20,因为作用域链
}
}
js执行顺序会预解析,再执行
js的预解析会把var和function提到当前作用域最前面
代码执行,按照预解析后的顺序执行.
预解析分为变量提升和函数提升
变量提升只提升变量声明,不提升变量赋值.
构造函数首字母要大写
for in和for of 遍历时有小区别。
js的对象包括三类 自定义对象 内置对象和浏览器对象
检测是否为数组可以用instanceof
基础包装类
let s1 = 'abcdef';
let s2 = s1.substring(0, 3);
// 以下代码是在后台执行完成的
// 当s1调用方法时,会生成一个临时变量,默认创建一个s1的包装对象实例
let temp = new String(s1);
let s2 = tem.substring(0,3); // 'abc'
// 销毁临时变量
tem = null;
理论上基础变量不应该方法,但是一个数组或者string需要方法,因此又了基础包装类。
字符串不可变,每次更改字符串实质上都是找到一块新的内存空间,再修改指针指向。(ztmlj)
考虑开销,尽量避免大量拼接字符串。
dom操作----页面操作----一个页面就是一个文档
dom树 包括根元素,头文件,元素<a>,<href>
所有标签都是元素,dom用element表示。
网页上的所有内容都是节点(node),包括标签,属性,文本,注释
dom把以上内容看成对象。
通过getelementbyId和getelementByTagName可以获得对应id和标签的内容。
queryselector可以选择选择器,再返回选择器返回的第一个元素(这东西花