前端与JS | 青训营笔记

40 阅读2分钟

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元素有哪些方法

屏幕截图 2023-01-24 205131.jpg

操作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、依赖就近,按需加载,同步执行