最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 10个Javascript基础面试问题

    正文概述 掘金(海拥)   2021-06-25   289

    这是我参与更文挑战的第25天,活动详情查看: 更文挑战

    1.什么是Javascript?

    Javascript是一种用于Web开发的编程语言。JavaScript在网络的客户端上运行。

    根据MDN,JavaScript(通常缩写为JS)是一种轻量级的,解释性的,面向对象的语言,具有一流的功能,并且最著名的是Web页面的脚本语言,但它也用于许多非浏览器环境中。它是一种基于原型的多范式脚本语言,它是动态的,并支持面向对象,命令式和函数式编程样式。

    2.什么是DOM

    DOM代表文档对象模型。加载网页后,浏览器会使用HTML和CSS文件创建一个DOM。DOM由节点和元素表示。您可以使用javascript处理DOM。它是一个树状结构。

    3. JS代码如何执行

    要回答的问题有点大。但是我们可以简单地说一下。Javascript在浏览器上运行。几乎每个浏览器都有一个JavaScript引擎。V8是其中最受欢迎的。Chrome使用V8引擎。另一方面,Firefox使用Spider-Monkey引擎。

    4. =====之间的区别

    如果我这么简单地说,==仅检查两个值是否相同。它不检查这些值的类型。查看以下代码:

    if(2=="2"){
     console.log("true")
    } else {
    console.log("false")
    }
    

    上面的代码将记录为true。因为它将2和“ 2”视为相等,因为它不检查类型。

    相反,===同时检查类型和质量。例如:

    if(2==="2"){
     console.log("true")
    } else {
    console.log("false")
    }
    

    这将记录为false。因为2和“ 2”的值相等,但是它们的类型不同。

    5.Null(空值)与Undefined(未定义)

    通常,null表示空值和不存在的值,而undefined表示已声明但尚未定义的值。尽管您也可以显式地将undefined设置为变量。

    var n;
    console.log(typeof(n)); // undefined
    
    var n = null;
    console.log(typeof(n)); // object
    

    有趣的是JS中的对象类型为null。

    6. Var vs Let vs Const

    在ES6之前,var是声明变量的唯一方法。但是现在我们有更多选择。

    有一个术语作为范围。范围是指可以使用这些变量的位置。var声明是全局范围的或函数/局部范围的。

    可以挂起Var,我们将在几秒钟后讨论。但是,现在让let对于变量声明更可取。当不需要稍后在代码中更改变量时,可以使用const。为了获得两者之间的区别,您可以阅读下面的文章,我认为它非常有用。

    7.变量提升(Hoisting)

    在javascript中,可以在声明变量之前使用变量。物理上移到代码顶部的变量和函数声明的概念称为变量提升。

    console.log(num); // Returns undefined, as only declaration was hoisted, no initialization has happened at this stage
    var num; // Declaration
    num = 6; 
    

    那么,let和const变量是否不会被悬挂?答案要复杂得多。所有声明(函数,var,let,const和class)都在JavaScript中吊起,而var声明使用undefined初始化,但是let和const声明保持未初始化。

    8.全局变量与局部变量

    在javascript中,范围分为两种方式。全局和局部。 在函数中声明的变量称为局部作用域。该变量不能在函数外部访问。相反,在函数外部声明的变量称为全局范围。可以在函数内部访问它。

    var genre= "superhero" //global scope
    // code here can't use superhero but genre
    function myFunction() {
      var superhero = "Batman"; // local scope
      // code here CAN use superhero and genre
    }
    

    9.闭包(Closure)

    闭包使我们可以从内部函数访问外部函数的范围。可以通过从一个函数返回另一个函数来创建它。它为每个实例创建一个封闭的环境。例如:

    function sum(x) {
      return function(y) {
        return x + y;
      };
    }
    
    var add5 = sum(5);
    var add10 = sum(10);
    
    console.log(add5(6));  // 11
    console.log(add10(6)); // 16
    

    这里的add5和add10都是闭包。它们共享相同的定义,但存储不同的环境。

    10.回调函数

    根据MDN,回调函数是一个作为参数传递给另一个函数的函数,然后在外部函数内部调用该回调函数以完成某种例程或操作。例如

    function greeting(name) {
      console.log('Hello ' + name);
    }
    
    function greetEmployee(name,callback) {
      callback(name);
    }
    
    greetEmployee("Dwight",greeting);
    

    在这里,greeting函数已在greetEmployee函数内部使用。这就是我们所谓的回调函数。

    感谢阅读本文。希望这能帮助到你。

    联系作者

    我已经写了很长一段时间的技术博客,这是我的一篇技术文章/教程。希望你们会喜欢!更多相关文章及我的联系方式我放在这里:

    github.com/wanghao221
    gitee.com/haiyongcsdn…

    如果你真的从这篇文章中学到了一些新东西,喜欢它,收藏它并与你的小伙伴分享。?最后,不要忘了❤或?支持一下哦


    起源地下载网 » 10个Javascript基础面试问题

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元