# 考试题目

## 填空
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(){},

}