美文网首页工作生活
(程序代码解读)

(程序代码解读)

作者: 送你一堆小心心 | 来源:发表于2019-06-29 17:32 被阅读0次

1. c 的值是多少 ===> 5

    var a = 2 ,b = 3;
    var c = a+++b;

2. 以下代码执行结果

    var uname = 'pig'
    function change () {
       alert(uname)
       var uname = 'dog'
       alert(uname)
    }  
    change()

undefined , dog (变量声明提前问题)

3.获取到页面中所有的checkbox?(不适用第三方框架)

      var inputs = document.getElementsByTagName('input')
      var checkboxArray = [ ]
      for (var i = 0 ; i< inputs.length; i ++) {
            var obj = inputs[i]
            if (obj.type == 'checkbox') {
                checkboxArray.push(obj)
            }
      }

4. alert的值分别是多少?

      var a = 100
      function test () {
          alert(a)
          a = 10 // 去掉了var变成了全局变量
          alert(a)
      }
      test ()
      alert(a)

顺序依次:100,10,10

5. 判断字符串以字母开头,后面可以是数字,下划线,字母,长度为6-30

    var reg = /^[a-zA-Z]/\w{5,29}$/

6. 下列代码输出什么?为什么?

    var a = null
    alert(typeof a)

object => 因为null是一个只有一个值的数据类型,这个值就是null。表示一个空指针对象,所以是object

6. 看下面代码输出了什么?

        for (var i = 1; i <= 3; i++) {
            setTimeout(function(){
                console.log(i)
            },0)
        }

答案: 4 4 4 => js事件处理器在线程空闲之前不会运行

7. 对作用域上下文和this的理解,看下列代码的输出值

      var User = {
          count: 1,
          getCount: function(){
              return this.count
          }
      }
      console.log(User.getCount())
      var func = User.getCount
      console.log(func())

答案: 1, undifined => func是在window的上下文中被执行的,所以不会访问到count属性

8. 写一个function,清除字符串前后的空格(兼容所有浏览器)

      function trim (str) {
          if (str & typeof str === 'string') {
                return str.replace(/(^s*)|(s*)$/g,"")
          }
      }

9.降维数组

    var arr = [[1,2],[3,4]]
    function test(obj){
        return Array.prototype.concat.apply([],obj)
    }
    test(arr)

降维后结果[1,2,3,4]

10.编写一个方法求一个字符串的字节长度

    function getStrLen(str) {
        var json = {len:0}
        var re = /[\u4e00-\u9f5a]/
        for (var i = 0; i < str.length; i++){
            if (re.test(str.charAt(i))){
                json['len']++
            }
        }
        return json['len']+str.length
    }
    // 一个中文占两个字符
    var str = '猪猪猪123a'
    alert(getStrLen(str))

输出:10

11. 输出结果

      var a = 1;
      a.a=2
      console.log(a.a)

输出:undefined

12. 输出结果

      var a = {n:1}
      var b = a;
      a.x = a = {n:2}
      
      console.log(a.x)
      console.log(b.x)

输出:undefined {n:2}
a和b在内存里指向同意指针,共用一个对象,所以b也赋予了x属性,但是a重新赋值了,所以a重新指向了一个对象,所以a没有x属性

13. 点击button4会在控制台输出什么?

      for (var i = 0; i < 5; i++) {
          var btn = document.createElement('button')
          btn.appendChild(document.createTextNode('Button' + i))
          btn.addEventListener('click',function(){
                console.log(i)
          })
          document.body.appendChild(btn)
      }

输出 5 因为在点击之前就已经执行完循环并且跳出循环了,所以点击每个按钮都会输出5

14.数字字符串之前存在数字中的正负号(+/-)时,会被转换成数

      console.log(1+"2"+"2")//122
      console.log(1++"2"+"2")//32
      console.log(1+-"1"+"2")//02
      console.log(+"1"+"1"+"2")//112
      console.log("A"-"B"+"2")//NAN2
      console.log("A"-"B"+2)//NAN

输出以下程序的值

相关文章

网友评论

    本文标题:(程序代码解读)

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