美文网首页
前端知识积累之——JS篇

前端知识积累之——JS篇

作者: Amor_Hy | 来源:发表于2017-08-10 11:58 被阅读0次

    1 原生js的dom操作

    创建节点  createElement

    移除节点  removeChild

    替换节点 replaceChild(oldNode,newNode)

    插入节点 insertBefore(newNode, refNode)在refNode节点前添加newNode

    添加节点 appendChild(childNode)

    高级选择器 querySelector(css选择器)

    2、 == 的隐式转换

    ①、双等号两边有一个 NaN  一律返回false

    ②、双等号两边有布尔值,将布尔值转换成数字 false => 0 , true => 1

    ③、 如果等号一边有字符串,另一边有三种情况

    (1) 如果是字符串,则直接比较

    (2) 如果是对象,则先调用valueOf()方法,如果没有则调用toString()方法

    (3) 如果是数字,则将字符串转换成数字,然后进行比较

    (4) 如果是其他,则直接返回false

    ④ 如果是数字和对象比较,则调用对象的valueOf() 或者 toString()方法 进行比较

    ⑤ null == undefined

    转换对象是先调用valueOf()方法,如果返回对象是对象本身或者一个对象则再调用toString()方法

    但date对象是个例外,date对象默认先调用toString()方法、

    eg :  new Date() + 1  => "Mon Aug 14 2017 15:40:31 GMT+0800 (中国标准时间)1"  返回字符串

    3、 对于运算,先用Number()将对象转换成数字,然后进行计算

    5 * null = 0      因为 Number(null)  = 0 

    5 * "A"  = NaN  因为 Number("A") = NaN

    如果Infinity与0相乘,结果是NaN

    5 / 0   5/null  ==> 结果是 Infinity

    0 / infinity ==> 0

    但是 0/0  ==> 结果是 NaN

    取余的隐式转换规则

    Infinity%Infinity结果是NaN

    a % b  中 b 是除数, a 是被除数

    被除数无穷大, 除数有限大, 则 NaN

    被除数有限大, 除数为0, 则NaN

    被除数有限大, 除数无限大, 则结果是被除数

    被除数是0 , 结果是0

    0 % NaN ==> NaN 

    5 - Infinity  ==> -Infinity

    console.log(Infinity-Infinity);//NaN

    console.log("两个数的差是"+5-5);//NaN

    console.log("两个数的差是"+(5-5));//两个数的差是0

    4、DOM事件流

    DOM事件流分为冒泡型事件流和捕获型事件流

    点击事件的发生过程是 事件捕获 事件处理  事件冒泡

    事件捕获是从windows ——> document  ——> html ——> body ——>目标元素

    处理事件

    事件冒泡是 从目标元素——>body——>html——>document——> windows

    所以事件会被触发两次,所以要阻止事件的冒泡

    5、为什么要清除浮动元素? 怎么清除?

    相关文章

      网友评论

          本文标题:前端知识积累之——JS篇

          本文链接:https://www.haomeiwen.com/subject/uzcvlxtx.html