# 考试题目 ## 填空 1. js变量类型一共有 2 种,分别是哪些 原始值和引用值 原始值 number string boolean undefined nll 引用值 object 3. 将 "025.5" 的string类型变量转化为 number 类型后 值是什么? 25.5 4. 1 + ‘1’ 的运算结果是 11 5. 0 || 3 的返回结果是 3 6. 1 && 5 的返回结果是 5 7. 三种数据类型检测的方法 typeof instanceof **Object.prototype.toString.call** ## 简答 1. 定义一个数组[1,2,4,8,32] 计算所有数组元素的总和 最后把数组元素的总和写在页面上。 var arr=[1,2,4,8,32] var sum=0 for(let i in arr){ ​ sum+=arr[i] } document.write(sum) 2. 定义一个方法 接受一个参数 计算从1 到传入数字的总和(累加) 并返回总和 function add(e){ var sum=0 ​ for(let i=1;i<=e;i++){ ​ sum+=i ​ } return sum } 3. 定义一个方法 接受一个参数 返回传入的参数是不是偶数 偶数返回 1 奇数返回 0 function panduan(e){ ​ if(e%2){ ​ return 0 ​ }else{ ​ return 1 ​ } } 4. 有下面一段代码 请写出答案 ```javascript let obg = { name:"啦啦啦", age:18 } function func(o){ o.name = 123 } func(obg) ``` 执行完之后obg的值是什么, 为什么 {name:123,age:18} func(obg) 把obg 当作参数传了进去 然后 从函数体内 修改了obj里name的值为123 然后 重新输出obg时 name 就变成123了 5. 有下面一段代码 请写出答案 ```javascript let n = "喵喵喵" window.n = "汪汪汪" let obg = { n:"啦啦啦", echo: ()=> { return this.n; } } let jieguo = obg.echo() ``` 请问变量 jieguo 的值是什么,为什么 汪汪汪 箭头函数内部没有this 他的this会指向外面一层的对象,所以会从window 里取n的值 即汪汪汪 6. 请写出一个构造函数 他有一个name 属性和一个 echo方法 执行echo的时候会返回他name的值 new 的时候将传入的参数的值赋值给name ​ function miao(name){ ​ this.name=name ​ this.echo=function(){ ​ return this.name ​ } ​ } ​ var mao=new Miao('本猫咪') 7. 分析下面代码的预编译过程 ``` var shopname='解忧杂货店'; var auth="东野圭吾" function echo(pri){ var say=function(){console.log("welcome")} age=40 function end(){ console.log('欢迎下次光临') } } echo("0.0") ``` go: 1.{ ​ shopname:undefined ​ auth:undefined ​ age:undefined ​ echo:undefined ​ } 2.{ ​ shopname:"解忧杂货店" ​ auth:"东野圭吾" ​ age:40, ​ echo:undefined ​ } 3.{ ​ shopname:"解忧杂货店" ​ auth:"东野圭吾" ​ age:40, ​ echo:function ​ } AO: 1.{ ​ pri:undefined ​ say:undefined ​ end:undefined ​ } 2.{ ​ pri:0.0, ​ say:function(){}, ​ end:undefined } 3. { ​ pri:0.0, ​ say:function(){}, ​ end:function(){}, }