# 考试题目
<font color="red">77</font>
## 填空
1. js变量类型一共有   7  种，分别是哪些    boolean  string  undefined  null  bigint  number  symbol      <font color="red">3</font>
2. 将 "025.5" 的string类型变量转化为 number 类型后 值是什么?   25.5  <font color="red">5</font>
3. 1 + ‘1’ 的运算结果是 11 <font color="red">5</font>
4. 0 || 3 的返回结果是  3   <font color="red">5</font>
5. 1 && 5 的返回结果是  5 <font color="red">5</font>
6. 三种数据类型检测的方法 typeof，  instance of ，object.prototype.toString.call() 
<font color="red">3</font>
## 简答
1. 定义一个数组[1,2,4,8,32] 计算所有数组元素的总和。<font color="red">10</font>

​         let num = [1,2,4,8,32];

​		 let  sum = 0;

​		 for  (let i=0;i<num.length;i++) {

​                  sum += num[i];

​			}

​         alert(sum);













2. 定义一个方法 接受一个参数 计算从1 到传入数字的总和(累加) <font color="red">10</font>

   let  s = 0;

   function  sum(n){

   ​	 for  (let i=1;i<=n;i++) {

   ​                s += i;

   ​			}

   ​	  alert(s);

   }

   sum(3);















3. 定义一个方法 接受一个参数 返回传入的参数是不是偶数 偶数返回 1 奇数返回 0  <font color="red">10</font>

   function  odd(n){

   ​	 if  (n%2==0) {

   ​                return 1;

   ​			}

   ​	  else  {   return 0; }

   }

   odd(3);












4. 有下面一段代码 请写出答案  <font color="red">8</font>
```javascript
let obg = {
    name:"啦啦啦",
    age:18
};
function func(o){
    o.name = 123
}
func(obg);

```
执行完之后obg的值是什么， 为什么

obg  {
    name:123,
    age:18
};

函数把obj当做参数传入并改变了obj的name属性







5. 有下面一段代码 请写出答案  <font color="red">10</font>
```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  <font color="red">3</font>

function  Fn（name）{

​	this.name = name;

​	echo(name){

​		return "name";

​	}

}

let  fn = new  Fn("LiMing");









7. 分析下面代码的预编译过程  <font color="red">5</font>

   ```
   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.执行





















