zoukankan      html  css  js  c++  java
  • JS相关的复习记录-持续更新

    一:数据类型检测

      typeof 可以检测除了null 和 Array之外的所有类型。

      instanceof 通过原型链来判断数据类型的

      Object.prototype.toString.call() 可以检测所有的数据类型

    二:深浅拷贝

      浅拷贝:Object.assign({},{a:1})

      深拷贝:JSON.parse(JSON.stringify(obj))

    三:promise

      promise 状态: pending, resolve,  reject

      pending: 正在进行中。

      resolve: 成功的回调。

      reject: 失败的回调

    四:jquert 链式写法的调用原理

       实例在调用内部方法的时候,返回当前调用这个方法的实例对象this就可以了,因为返回了当前的this就可以继续访问自己的原型了

    五:什么是回调地狱并避免。

      什么是回调地狱:在js中的异步逻辑导致导致函数的参数层层嵌套。一个函数作为参数需要依赖另一个函数执行的调用。

    如何避免:

      保持代码剪短,模块化引用。

      es6 用promises 编写异步代码,使代码继续自上而下。并且可以使用try/catch,

      es6 Generators是代码暂停,用next(继续)使代码继续自上而下

      es7 Async function 异步方法

     六:Javascript作用链域?

      因为全局函数无法查看局部函数的内部结构,但局部函数可以查看上层和全局的函数结构,当需要从局部函数查找某一属性或者函数时,如当前作用域没有,边上找到上一层作用域,直到全局。

     谈谈This对象的理解。

      this总是指向函数的直接调用者;如果有new关键字,this指向new出来的那个对象;在事件中,this指向触发这个事件的对象

    七:DOM操作——怎样添加、移除、移动、复制、创建和查找节点?

      (1) 创建新节点 createDocumentFragment() //创建一个DOM片段 createElement() //创建一个具体的元素 createTextNode() //创建一个文本节点

      (2) 添加、移除、替换、插入 appendChild() removeChild() replaceChild() insertBefore() //在已有的子节点前插入一个新的子节点

      (3) 查找 getElementsByTagName() //通过标签名称 getElementsByName() //通过元素的Name属性的值(IE容错能力较强,会得到一个数组,其中包括id等于name值的) getElementById() //通过元素Id,唯一性

    八:如何判断当前脚本运行在浏览器还是node环境中?

      this === window ? 'browser' : 'node';

    九:检测浏览器版本信息等

      navigator.userAgent

    十:函数防抖(debounce)与函数节流(throttle)

      函数防抖(debounce):在事件被触发n秒后再执行回调,如果在这n秒内又被触发,则重新计时。

      实际利用:每次 resize/scroll 触发统计事件、文本输入的验证(连续输入文字后发送 AJAX 请求进行验证,验证一次就好)

      函数节流(throttle):规定一个单位时间,在这个单位时间内,只能有一次触发事件的回调函数执行,如果在同一个单位时间内某事件被触发多次,只有一次能生效。

      DOM 元素的拖拽功能实现(mousemove).计算鼠标移动的距离(mousemove)

     
  • 相关阅读:
    [LeetCode]题解(python):041-First Missing Positive
    [LeetCode]题解(python):037-Sudoku Solver
    [LeetCode]题解(python):040-Combination Sum II
    [LeetCode]题解(python):039-Combination Sum
    [LeetCode]题解(python):038-Count and Say
    [LeetCode]题解(python):036-Valid Sudoku
    [LeetCode]题解(python):035-Search Insert Position
    [LeetCode]题解(python):034-Search for a Range
    [LeetCode]题解(python):033-Search in Rotated Sorted Array
    计算最长英语单词链
  • 原文地址:https://www.cnblogs.com/yasoPeng/p/12802147.html
Copyright © 2011-2022 走看看