zoukankan      html  css  js  c++  java
  • 20211116js问题一些整理

    1.操作dom元素有哪些方法?

    createElement   创建一个标签节点
    createTextNode  创建一个文本节点
    cloneNode       复制一个节点
    appendChild     追加子元素
    insertBefore    将元素插入前面
    removeChild     删除子元素
    replaceChild    替换子元素
    getAttribute    获取节点属性
    createAttribute 创建属性
    setAttribute    设置节点属性
    romoveAttribute 删除节点属性
    

    2.JS的作用域及作用域链

    **在js中,作用域分为全局作用域和函数作用域**
    全局作用域:代码在程序任何地方都可以访问。
    函数作用域:在固定的代码段才能进行访问。
    作用域链:如果在当前作用域内没有查到值,就会向上级作用域去查,直到查到全局作用域。
    

    3.数组的splice 与 slice 的区别?

    splice:splice(start,num,a,b):支持四个参数,从start索引开始,截取num个元素,并会吧a,b查到原数组内,影响到原数组。
    
    slice:slice(start,end):支持两个参数,从start开始截取到end-1,如果没有end,则从start截取到最后。
    
    

    4.substr 和 substring 的区别?

    substr:substr(start,length):返回从start开始length长度的字符串
    
    substring:substring(start,end):返回从start开始到end结束的字符串(不包含end)
    

    5.什么是Promise?解决了什么问题?

    阮一峰promise

    手写promise原理

    有什么用呢?

    1、解决回调地狱问题

    2、代码可读性提高

    3、你可以信任Promise,它的状态只会改变一次并且不可逆

    6.什么是async/await?解决了什么问题?

    阮一峰async

    async/await原理

    用同步方法执行异步代码

    7.JS延迟加载的方法有哪些?

    1.给script标签加async属性,则加载和渲染后续文档元素的过程将和 script.js 的加载与执行并行进行(异步)
    2.给script标签加defer属性,加载后续文档元素的过程将和 script.js 的加载并行进行(异步),但是 script.js 的执行要在所有元素解析完成之后,DOMContentLoaded 事件触发之前完成
    3.动态创建script标签:等到DOMContentLoaded 事件触发时,生成一个script标签,渲染到页面上上
    4.setTimeout定时器延迟代码执行
    

    8.new操作符为什么能创建一个实例对象?

    分析一下new的整个过程:

    1、创建一个空对象
    2、继承构造函数的原型
    3、this指向obj,并调用构造函数
    4、返回对象

    function myNew (fn, ...args) {
        // 第一步:创建一个空对象
        const obj = {}
    
        // 第二步:继承构造函数的原型
        obj.__proto__ =  fn.prototype
    
        // 第三步:this指向obj,并调用构造函数
        fn.apply(obj, args)
    
    
        // 第四步:返回对象
        return obj
    }
    
    

    9.宏任务与微任务有哪些?

    宏任务:setTimeout,setInterval,setImmediate,requestAnimationFrame
    微任务:Promise,prototype,then,catch,finally,nextTick

    10.宏任务与微任务的执行顺序?说说EventLoop

    setTimeout+Promise+Async输出顺序?很简单呀!

    11.箭头函数与普通函数的区别?

    1、箭头函数不可作为构造函数,不能使用new
    
    2、箭头函数没有自己的this
    
    3、箭头函数没有arguments对象
    
    4、箭头函数没有原型对象
    

    12.函数的length是多少?

    函数的length是多少?

    13.JS中如何将页面重定向到另一个页面?

    1、使用 location.href:window.location.href =“www.onlineinterviewquestions.com/”
    
    2、使用 location.replace: window.location.replace(" www.onlineinterviewquestions.com/;");
    
    3. 使用window.open
    

    常用的正则表达式有哪些

    有了这25个正则表达式,代码效率提高80%

  • 相关阅读:
    关于在elasticSearch中使用聚合查询后只显示10个bucket的问题
    关于gradle与maven对springboot项目的配置文件加载异同
    正则表达式限制输入框只能输入数字
    关于在layui中的table checkbox 默认选中设置
    获取的ajax方法return的返回值的问题解析
    centos 6.5 安装mysql 5.6.35–libc.so.6(GLIBC_2.14)(64bit),libstdc++.so.6(GLIBCXX_3.4.15)(64bit)
    Linux下ps -ef和ps aux的区别及格式详解
    SSH 远程上传本地文件至服务器
    VMWare Fusion 8 序列号
    Mac OS X下安装和配置Maven
  • 原文地址:https://www.cnblogs.com/loveliang/p/15561614.html
Copyright © 2011-2022 走看看