# 考试题目 77 ## 填空 1. js变量类型一共有 7 种,分别是哪些 boolean string undefined null bigint number symbol 3 2. 将 "025.5" 的string类型变量转化为 number 类型后 值是什么? 25.5 5 3. 1 + ‘1’ 的运算结果是 11 5 4. 0 || 3 的返回结果是 3 5 5. 1 && 5 的返回结果是 5 5 6. 三种数据类型检测的方法 typeof, instance of ,object.prototype.toString.call() 3 ## 简答 1. 定义一个数组[1,2,4,8,32] 计算所有数组元素的总和。10 ​ let num = [1,2,4,8,32]; ​ let sum = 0; ​ for (let i=0;i10 let s = 0; function sum(n){ ​ for (let i=1;i<=n;i++) { ​ s += i; ​ } ​ alert(s); } sum(3); 3. 定义一个方法 接受一个参数 返回传入的参数是不是偶数 偶数返回 1 奇数返回 0 10 function odd(n){ ​ if (n%2==0) { ​ return 1; ​ } ​ else { return 0; } } odd(3); 4. 有下面一段代码 请写出答案 8 ```javascript let obg = { name:"啦啦啦", age:18 }; function func(o){ o.name = 123 } func(obg); ``` 执行完之后obg的值是什么, 为什么 obg { name:123, age:18 }; 函数把obj当做参数传入并改变了obj的name属性 5. 有下面一段代码 请写出答案 10 ```javascript let n = "喵喵喵" window.n = "汪汪汪" let obg = { n:"啦啦啦", echo: ()=> { return this.n; } } let jieguo = obg.echo() ``` 请问变量 jieguo 的值是什么,为什么 汪汪汪 jiegou调用obg的echo方法,由于echo是箭头函数不能调用对象内的n:啦啦啦,只能调用对象外一层的n,对象外一层的n 先定义为喵喵喵后改为汪汪汪,所以jiegou的值为汪汪汪 6. 请写出一个构造函数 他有一个name 属性和一个 echo方法 执行echo的时候会返回他name的值 new 的时候将传入的参数的值赋值给name 3 function Fn(name){ ​ this.name = name; ​ echo(name){ ​ return "name"; ​ } } let fn = new Fn("LiMing"); 7. 分析下面代码的预编译过程 5 ``` var shopname='解忧杂货店'; var auth="东野圭吾" function echo(){ var say=function(){console.log("welcome")} age=40 function end(){ console.log('欢迎下次光临') } } ``` GO: 1.先找到变量和函数声明 找到 shopname auth echo() ​ 2.执行过程中给变量赋值 var shopname='解忧杂货店'; var auth="东野圭吾" ​ 3.执行过程中给函数赋函数体 function echo(){ ...} ​ 4.执行 ​ AO :1.在函数体内部先找到变量和形参 找到say ​ 2.执行过程中形参和实参相统一,并且给函数表达式赋值 ​ var say=function(){console.log("welcome")} ​ 3.执行过程中寻找函数声明并给函数赋函数体 ​ function end(){console.log('欢迎下次光临')} ​ 4.执行