undeclared 与 undefined的区别
- undefined:声明了变量,但是没有赋值
- undecalared:没有声明变量就直接使用
- var a; //undefined
- b; // b is not defined
let&const与var的区别
- var存在变量提升,可重复声明同一变量,声明的变量均可改
- let没有变量提升,不可重复声明同一变量,声明的变量均可改
- const没有变量提升,不可重复声明同一变量,声明的基本数据类型不可改,引用类型可改属性,不可只声明变量而不赋值
暂时性死区问题
-
var a = 100;
-
if(1){ a = 10; //在当前块作用域中存在a使用let/const声明的情况下,给a赋值10时,只会在当前作用域找变量a, // 而这时,还未到声明时候,所以控制台Error:Cannot access 'a' before initialization let a = 1; }
获取DOM元素有哪些方法
操作DOM元素有哪些方法
- createElement 创建一个标签节点
- createTextNode 创建一个文本节点
- cloneNode(deep) 复制一个节点,连同属性与值都复制,deep为true时,连同后代节点一起复制,不传或者传false,则只复制当前节点
- createDocumentFragment 创建一个文档碎片节点
- appendChild 追加子元素
- insertBefore 将元素插入前面
- removeChild 删除子元素
- replaceChild 替换子元素
- getAttribute 获取节点的属性
- createAttribute 创建属性
- setAttribute 设置节点属性
- romoveAttribute 删除节点属性
- element.attributes 将属性生成类数组对象
JS延迟加载的方法有哪些
- 给script标签加defer属性,加载后续文档元素的过程将和 script.js 的加载并行进行(异步),但是 script.js 的执行要在所有元素解析完成之后,DOMContentLoaded 事件触发之前完成
- 动态创建script标签:等到DOMContentLoaded 事件触发时,生成一个script标签,渲染到页面上上
- setTimeout定时器延迟代码执行
AMD 和 CMD的区别
模块化 代表应用 特点
- AMD require.js 1、AMD的api默认一个当多个用
2、依赖前置,异步执行 - CMD sea.js 1、CMD的api严格区分,推崇职责单一
2、依赖就近,按需加载,同步执行