# 基础

1. 写出js的组成
   
2. 写出js三种引入方式 并举例
   
3. 列举几种js 交互方式
   
4. 说明常量和变量的区别
   
5. js中用什么定义变量和常量  声明两个变量和一个常量 
   
6. 如何交换两个变量的值
   
7. 变量命名规则
8. js中的数据类型有几种 分别包括
9. 检测数据类型的方式  分别说明优缺点
10. typeof 检测数据类型的返回值都有什么
11. 列举几种js交互方式  

12.从弹框中输入一个字符 点击确定从控制台打印用户输入的值

13. 基本数据类型和引用数据类型的区别
    
14. js 注释有几种写法

15.下面代码的执行结果为
```angular2html
	var a = "abcde";
	var b = "千古壹号";
	var c = "123123";
	var d = '哈哈哈哈哈';
	var e = "";     

	var f = haha; 

	console.log(typeof a);
	console.log(typeof b);
	console.log(typeof c);
	console.log(typeof d);
	console.log(typeof e);

```

16. 列举js中的转义字符
17. 分别取15题中的字符串的长度
18. 把15题中的6个字符串拼接成一个
19.下面代码的执行结果为
```angular2html
var str1 = '千古壹号' + '永不止步';
var str2 = '千古壹号' + 666;
var str3 = '千古壹号' + true;
var str4 = '千古壹号' + null;
var str5 = '千古壹号' + undefined;

var obj = { name: '千古壹号', age: 28 };
var str6 = '千古壹号' + obj;
```
20.下面代码的执行结果为

```angular2html
var a = true;
console.log(typeof a);
```

21. 下面代码的执行结果为

```angular2html
var a = 100; 
	console.log(typeof a); 

	var b = 12.3; 
	console.log(typeof a);

```

22. 下面代码的执行结果为

```angular2html
    console.log("abc" / 18); 

    console.log("abc" * "abcd");

```

23. 下面代码的执行结果为
```angular2html
console.log("我" + "爱" + "你");	
console.log("我+爱+你");	
console.log(1+2+3);
```
```angular2html
var a = "1";
var b = 2;
console.log(a + b);
```

```angular2html
var a = 1;
var b = 2;
console.log("a" + b);	
```


24.下面代码的执行结果为
```angular2html
var a = "4" + 3 - 6;
console.log(a);
```

25. 下面代码的执行结果为 并解释原因
```angular2html
   var a = 0.1 + 0.2;
    console.log(a);
```

26. 下面代码的执行结果为
```angular2html
var a = 1;              
var b = 2;            
var c = 3;           
a = b + c;             
b = c - a;             
c = a * b;             
console.log(a);
console.log(b);
console.log(c);
```

27. 下面代码的执行结果为
```angular2html
var a = "3";
var b = 2;
console.log(a-b);
```

28. 下面代码的执行结果为
```angular2html
var myObj = null;
cosole.log(typeof myObj); 
```

29. 下面代码的执行结果为
```angular2html
let name;
console.log(name); 
console.log(typeof name);

```

30.下面代码的执行结果为
```angular2html
console.log(typeof a); // undefined
console.log(a); 
```

31.列举几种隐式类型转换和显式类型转换
32.列举几种其他类型转成字符串的方式
33. 列举几种转成数值的方式（分为整型和浮点型）

34.下面代码的执行结果为
```angular2html
console.log(parseInt("2017在公众号上写了6篇文章")); 

console.log(parseInt("2017.01在公众号上写了6篇文章")); 

console.log(parseInt("aaa2017.01在公众号上写了6篇文章"))
```

35. 下面代码的执行结果为
```angular2html
var a = 168.23;
console.log(parseInt(a));

var b = true;
console.log(parseInt(b));  

var c = null;
console.log(parseInt(c));  

var d = undefined;
console.log(parseInt(d)); 

```

36. 下面代码的执行结果为
```angular2html
var a = parseInt(5.8) + parseInt(4.7);
console.log(a);
```

```angular2html
var a = parseInt(5.8 + 4.7);
console.log(a);
```

```angular2html
var a = '123.456.789px';
console.log(parseFloat(a));
```

37.下面代码的执行结果为
```angular2html
const a = 1;

console.log(a == true); 
console.log(typeof a);
console.log(0 == true)
```

38. 下面代码的执行结果为
```angular2html
const result1 = '';
const result2 = {a:'data1', b: 'data2'};

if (result1) {
    console.log('因为 result1的内容为空，所以代码进不了这里');
}

if (result2 && result2.a) {
    // 接口返回了 result2，且 result2.a 里面有值，前端才做进一步的事情
    console.log('代码能进来，前端继续在这里干活儿');
}

```




