美文网首页
面试题整理笔记

面试题整理笔记

作者: 木利 | 来源:发表于2018-07-23 16:48 被阅读0次

    js篇
    1.js数据类型
    原始类型和对象类型。原:number、string、boolean、null、undefined;对:object、function、regexp;
    2.类型转换
    强制类型转换 parseInt()、parseFloat()、
    隐式类型转换 四则运算
    转换为字符串 toString()
    3.数据类型检测

    alert(typeof null);
    alert(typeof undefined);
    alert(typeof "abc")
    alert(typeof 123)
    

    4.变量的作用域和变量提升
    5.typeof和instanceof的区别
    typeof是检测操作数类型
    instanceof是测试对象类
    6.对象序列化
    简单来说,就是将对象和字符串之间互相转换。
    ES5就存在了这样的内置函数JSON.stringify()和JSON.parse()

    //JSON.parse()  字符串转json对象
    var data='{"title":"lxy"}'//data为字符串
    console.log(JSON.parse(data))
    
    //JSON.stringify()   json对象转字符串
    var data={"title":'lxy'}//data为json对象
    console.log(JSON.stringify(data))
    

    7.js数组的方法
    除下之外常用的还有indexOf(),splice(),concat(),还有基础的添加删除,只要平时多练就能记住,最重要的就
    是明白哪些会改变原数组,哪些是产生新的数组,我就不分别总结啦,偷个懒
    找到一篇比较好的别人耐心总结的,分享给大家数组方法大总结

    var arm=[99,2,8];
    console.log(arm.join('~'))
    //join() 将数组按分隔符连接输出为字符串
    
    //split() 是将字符串按照分隔符创建一个数组eg:
    var aa='1#2#3';
    console.log(aa.split("#"))
    
    console.log(arm.reverse())
    //reverse()对数组的元素颠倒顺序,不会产生新的数组,改变数组
    
    console.log(arm.sort(function(a,b){return a-b}));
    console.log(arm)//看出改变了数组
    //sort()对数组进行排序,返回排序后数组,括号内是数值排序的规律,初学者可以试试b-a
    

    在做项目的过程中经常会遇到说检测某个值是否存在数组中,我常用的就是indexOf()或者find()
    jq中就是使用$.inArray(),感兴趣的朋友可以去了解一下
    8.函数闭包(算是比较重要的概念)
    简单的一句话解释闭包:函数外可以访问函数内的变量。想要理解闭包,要清楚作用域的范围,函数作为返回值

    //函数的返回值也可以是函数
    function sum(){
       return function(x){
         return x+=1;
       }
    }
    console.log(sum())//返回的是内部的函数function(x) {    return x += 1;},
    console.log(sum()(1)) //2
    
    //闭包demo2
        function f1(){
            var bb = "js闭包";
             return function f2(){
                console.log('我是'+bb);
            }
        }
        var f = f1();
        f();  //弹出:我是js闭包;
    
    

    一般的函数机制是,当函数体执行完之后,函数内的局部变量就会被浏览器删除回收,但是现在闭包函数f1函数执行完,变量bb是不会被清除的,而是始终保持在内存中,直到f2函数执行完毕,感兴趣的可以去看一看js的垃圾回收机制,注意使用闭包的会造成内存泄漏,想要深入了解的小伙伴可以去看这篇博客js垃圾回收机制和引起内存泄漏的操作

    9.高阶函数(提升加分项。偶尔大公司会问到)
    平常我们的函数的参数可以接收一个变量,那一个函数可以接收另一个函数作为参数,这种函数就是所谓的高阶函数
    其实在我是接触过高阶函数的,只是我不知道比如就有setInterval,setTimeout,sort

     var d=function (a){
         return (a+1)
    }
    function sum(x,y,f){
          return f(x)+f(y)
    }
    var b=sum(1,2,d)
    console.log(b)
    //简单的高阶函数demo,其中d作为sum函数的参数,sum函数就是高阶函数
    

    10.原型和原型链
    继续整理中

    相关文章

      网友评论

          本文标题:面试题整理笔记

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