143 lines
4.7 KiB
Markdown
143 lines
4.7 KiB
Markdown
# js 基础练习
|
||
* 写出四种js引入方式并举例
|
||
* 下面两段代码,说明js文件的加载顺序并解释原因
|
||
demo1:
|
||
|
||
```
|
||
<script async src="js/vendor/jquery.js"></script>
|
||
<script async src="js/script2.js"></script>
|
||
<script async src="js/script3.js"></script>
|
||
|
||
```
|
||
|
||
demo2
|
||
```
|
||
<script defer src="js/vendor/jquery.js"></script>
|
||
<script defer src="js/script2.js"></script>
|
||
<script defer src="js/script3.js"></script>
|
||
|
||
```
|
||
* 如果浏览器不支持javascript的语法需要在页面上提示您的浏览器不支持javascript 运行 如何实现
|
||
|
||
|
||
|
||
* 列举几种js 交互方式
|
||
|
||
* js的组成
|
||
|
||
* JavaScript 如何与 HTML 和 CSS 协同工作
|
||
|
||
* 在外部文件中放置js脚本有什么优势
|
||
|
||
|
||
|
||
变量和常量
|
||
* 如何交换两个变量的值
|
||
* 字面量和变量的关系及区别
|
||
* 变量命名规则
|
||
|
||
* 下面代码执行结果为 原因是
|
||
```
|
||
var obj1 = new Object();
|
||
var obj2 = obj1;
|
||
obj1.name = "Nicholas";
|
||
alert(obj2.name);
|
||
|
||
```
|
||
* 用一行语句声明5个变量 其中值包有一个只声明不赋值 其他分别为null 数值 字符串 布尔
|
||
数据类型
|
||
|
||
* 数据类型可以分为哪几类 有什么区别
|
||
|
||
* 如何实现功能 当浏览器不支持javascript脚本的时候 给用户在页面上提示“您的浏览器不支持javascript 脚本,请尽快升级浏览器”
|
||
* typeof 检测数据类型的返回值都有什么 分别代表什么意思
|
||
* 类型转换相关
|
||
1. 输入两个数字,点求和弹出两个数字相加的结果。
|
||
1. 输入框的默认value进行相加,结果是进行了字符串相加,而非数字相加。
|
||
2. 将value的值进行parseInt,之后再相加,就是数字相加的结果了。
|
||
如果输入12+abc,会是什么结果? 你得到了什么结论
|
||
3.isNaN,检测输入框的内容是不是NaN。true为真,false为假。
|
||
4.写出下面的执行结果
|
||
1 + '1'
|
||
true + 0
|
||
{}+[]
|
||
4 + {}
|
||
4 + [1]
|
||
'a' + + 'b'
|
||
console.log ( [] == 0 )
|
||
console.log ( ! [] == 0 )
|
||
console.log ( [] == ! [] )
|
||
console.log ( [] == [] )
|
||
console.log({} == !{})
|
||
console.log({} == {})
|
||
|
||
1. 定义一个变量存储数据1234,分别输出个位,十位,百位,千位数字
|
||
2. 输入两个数字,相减四舍五入(.toFixed() 把保留几位小数写在括号里)
|
||
3. 从弹框中输入一个字符,判断这个字符是否是英文字母,数字,汉字(4e00-9fa5)
|
||
4. 下面代码的输出结果
|
||
console.log(10 + " cats");
|
||
console.log(10 * " cats");
|
||
Boolean([])
|
||
console.log(10 + "2");
|
||
console.log(10 - "2");
|
||
Number("3")
|
||
console.log(10 / "2");
|
||
console.log(10 * "2");
|
||
String(false)
|
||
console.log(10 * " 2");
|
||
console.log("10" * "2");
|
||
console.log(Object(undefined));
|
||
console.log(Object(null));
|
||
|
||
5. 下面代码的执行结果
|
||
var str = "abc";
|
||
str[0] = "d";
|
||
|
||
console.log(str[1]="e");
|
||
console.log(str[0]);
|
||
console.log(str);
|
||
var num = [1,2,3];
|
||
num[0] = "a";
|
||
|
||
console.log(num);
|
||
|
||
1. 下面代码的执行结果
|
||
var obj1 = {age: 22};
|
||
var obj2 = obj1;
|
||
|
||
console.log(obj1 === obj2);
|
||
obj2.age = 18;
|
||
console.log(obj1 === obj2);
|
||
|
||
2. 解释10,11结果出现的原因 并归纳基本数据类型和引用数据类型的区别
|
||
|
||
3. 下面代码的输出结果
|
||
var obj1 = {age: 22};
|
||
var obj2 = obj1;
|
||
console.log(obj1 === obj2);
|
||
obj2.age = 18;
|
||
console.log(obj1 === obj2);
|
||
console.log("1" instanceof String);
|
||
console.log(("1").constructor === String);
|
||
console.log((1).constructor === Number);
|
||
console.log((true).constructor === Boolean);
|
||
console.log(([]).constructor === Array);
|
||
console.log((function() {}).constructor === Function);
|
||
console.log(({}).constructor === Object);
|
||
console.log(1 instanceof Number);
|
||
console.log(true instanceof Boolean);
|
||
console.log([] instanceof Array);
|
||
console.log(function(){} instanceof Function);
|
||
console.log({} instanceof Object);
|
||
var test = Object.prototype.toString;
|
||
console.log(test.call("str"));
|
||
console.log(test.call(1));
|
||
console.log(test.call(true));
|
||
console.log(test.call(null));
|
||
console.log(test.call(undefined));
|
||
console.log(test.call([]));
|
||
console.log(test.call(function() {}));
|
||
console.log(test.call({}));
|
||
|
||
|