美文网首页
JS初级面试(一)

JS初级面试(一)

作者: 开心糖果的夏天 | 来源:发表于2017-06-12 22:52 被阅读26次

    web前端开发是一项很特殊的工作,涵盖的知识面非常广,它既有具体的技术,又有抽象的理念。

    1.关于javascript的说法:

    javascript是基于对象的、事件驱动的脚本程序设计语言。所谓对象是指任何事物都可以封装成类,而一个类中具体的某个事物就是这个类的对象;所谓事件是指为这些事件定义一些动作,当处理这些事件后就执行相关的代码,进行一些操作。

    2.如何截取字符串www.zhaopeirong.cn中的zhaopeirong?

    采用substr方法。
    定义和用法:substr方法用于返回一个从指定位置开始的指定长度的子字符串。
    语法:stringObject.substr(start[,length])
    参数描述:start必需。它是所需的子字符串的起始位置。字符串中的第一个字符的索引为0。
    length可选。指在返回的子字符串中应该包括的字符个数。
    示例代码如下:

    var str="www.zhaopeirong.cn";
    var result=str.substr(4,11);
    

    3.编写一个方法,求一个字符串的字符长度。

    示例代码如下:

    function getLength(str){
       return  str.length;
    }
    var result=getLength("www.zhaopeirong.cn");
    

    4.给出一个字符串str="www.zhaopeirong.cn",要求找出里面的字符串zhaopeirong,使用JavaScript实现。

    采用indexOf()方法。
    返回字符indexOf(string)中字符string在父串首次出现的位置,从0开始!没有返回-1;方便判断和截取字符串。示例代码如下:

    var str="www.zhaopeirong.cn";
    var serach="zhaopeirong";
    var start=str.indexOf(search);
    var result=str.substring(start,start+search.length);
    

    5.JavaScript的typeof都返回哪些数据类型?

    undefined、boolean、string、number、object、function。

    6.“5”+3的结果是多少?为什么?

    结果是53 。
    这时的5不是一个数字,而是一个字符串,“+”起到了连接作用,不是加,所以结果是53 。

    7.请自定义一个函数,实现字符串反转。

    JavaScript实现字符串反转主要是把字符串从末尾开始的每一个元素截取后,再重新组成一个新的字符串。示例代码如下:

    function revStr(str){
      var tmpStr="";
      for (var l=str.length-1;l>=0;l--){
        tmpStr+=str.charAt(l);
       }
       return tmpStr;
    }
    var str="abcdeg";
    console.log( revStr(str));
    

    8.字符串操作主要有哪些?

    (1)求字符串长度。
    (2)字符串赋值。
    (3)连接字符串操作。
    (4)求子串。
    (5)字符串比较。
    (6)子串定位。
    (7)字符串插入。
    (8)字符串删除。
    (9)字符串替换。

    9.JavaScript的两种变量范围有什么不同?

    全局变量无论在函数内部还是外部都可以访问,而局部变量只能在函数内部访问。
    全局变量:当前页面内有效。
    局部变量:方法内有效。

    10.JavaScript中声明变量有var和没有var的区别。

    JavaScript中变量声明的作用域是以函数为单位的,在函数内部,有var和
    没有var声明的变量是不一样的。有var声明的是局部变量,没有var声明的是全局变量。在JavaScript的函数作用域内,声明的变量或内部函数在函数体内都是可见的。这意味着,函数在定义之前可能已经可用。函数定义有两种方式,一种是函数定义表达式,一种是函数声明语句。函数声明语句“被提前”到外部脚本或外部函数作用域的顶部。所以,以这种方式声明的函数,可以被它定义之前出现的代码所调用。而函数定义表达式中,变量的声明被提前了,但是给变量的赋值时不会提前的。所以,以表达式方式定义的函数在函数定义之前无法调用。

    在全局作用域内声明变量时,有var和没有var是有区别的。使用var语句重复声明语句是合法且无害的。如果重复声明且带有赋值,那么就和一般的赋值语句没差别。如果尝试读取没有声明过的变量,JavaScript会报错。

    11.有一个字符串abcd-ef-ghi,请用JavaScript将它处理成abcd&ef&ghi。

    代码如下:

    var str= "abcd-ef-ghi";
    var arr1=str.split('-');
    var result=arr1.reverse().join("join");
    

    12.“undefined”和“undeclared”变量分别指什么?

    根本区别在于,undefined是JavaScript语言类型,而undeclared确是一种JavaScript语法错误。

    在JavaScript中有两个表示“空”的值:undefined和null,其中比较有用的是undefined。undefined是一个值为undefined的类型。JavaScript语言也定义了一个全局变量,它的值是undefined,这个变量也被称为undefined。但是这个变量不是一个常量,也不是一个关键字。这意味着它的值可以轻易被覆盖。为了避免可能对undefined值的改变,一个常用的技巧是使用一个传递到匿名包装器的额外参数。在调用时,这个参数不会获取任何值。

    而undeclared则是一种语法错误,其实访问undeclared的变量并非会中断浏览器执行。在浏览器运行上下文中,undeclared的变量简单可以认为没有var a这样定义变量。JavaScript引擎执行的时候,由于无法找到其对应的上下文(scope),所以会简单地认为该变量是全局的变量,就是会把该变量定义到window中去。

    学习是一件很快乐的事,这种快乐来自于你的思考。完成一项学习任务固然重要,但更重要的是在完成的过程中学到了什么,掌握了什么,遇到一些什么问题,为什么会出现这种问题,根源是什么,都有哪些解决方案,什么样的情况适合这个方案。只有在不断的思考,你的能力才会有所提升!

    相关文章

      网友评论

          本文标题:JS初级面试(一)

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