练习
This commit is contained in:
BIN
考试/原题/es6/letconst.docx
Normal file
BIN
考试/原题/es6/letconst.docx
Normal file
Binary file not shown.
252
考试/原题/es6/letconst.md
Normal file
252
考试/原题/es6/letconst.md
Normal file
@@ -0,0 +1,252 @@
|
||||
# let const 相关
|
||||
|
||||
## 选择
|
||||
|
||||
1. 下面代码执行结果为
|
||||
code:
|
||||
|
||||
```
|
||||
{
|
||||
let a = 0;
|
||||
a++
|
||||
}
|
||||
console.log(a)
|
||||
```
|
||||
A.0 B. 1 C.01 D.报错
|
||||
答案 D
|
||||
解析 执行结果为 报错 ReferenceError: a is not defined; let声明的变量只在代码块内部有效 var 声明的变量是在全局有效
|
||||
|
||||
|
||||
2. 下面代码执行结果为
|
||||
code:
|
||||
|
||||
```
|
||||
{
|
||||
let a = 0;
|
||||
var b = 1;
|
||||
}
|
||||
console.log(a)
|
||||
console.log(b)
|
||||
|
||||
|
||||
```
|
||||
A. 0,1 B.报错,1 C.报错 空 D. 1 undefined
|
||||
|
||||
答案 C
|
||||
解析 a是在代码块中用let声明的,只能在代码块内部访问,所以从代码块外面访问不到 然后console.log(a) 就会报错 报错会阻塞下面代码的执行 所以后面的console.log(b) 不执行
|
||||
|
||||
|
||||
3. 下面代码执行结果为
|
||||
code:
|
||||
|
||||
```
|
||||
let a = 1;
|
||||
let a = 2;
|
||||
var b = 3;
|
||||
var b = 4;
|
||||
console.log(b)
|
||||
console.log(a)
|
||||
|
||||
a // Identifier 'a' has already been declared
|
||||
b // 4
|
||||
|
||||
```
|
||||
A.4,报错 B.4,1 C.1,4 D.4,2
|
||||
|
||||
答案 A
|
||||
解析 结果为报错Identifier 'a' has already been declared 意为 a变量已经声明过了
|
||||
let 声明变量时,只能声明一次 不能重复声明 var 声明变量 可以声明多次
|
||||
|
||||
4. 下面代码的执行结果为
|
||||
code
|
||||
|
||||
```
|
||||
for (var i = 0; i < 10; i++) {
|
||||
setTimeout(function(){
|
||||
console.log(i);
|
||||
})
|
||||
}
|
||||
|
||||
```
|
||||
A. 0~9 B.10个0 C.什么也不输出 D.10个10
|
||||
|
||||
答案 D
|
||||
解析
|
||||
变量 i 是用 var 声明的,在全局范围内有效,所以全局中只有一个变量 i, 每次循环时,setTimeout 定时器里面的 i 指的是全局变量 i ,而循环里的十个 setTimeout 是在循环结束后才执行,所以此时的 i 都是 10。
|
||||
|
||||
5. 下面代码的执行结果为
|
||||
code:
|
||||
|
||||
```
|
||||
for (let j = 0; j < 10; j++) {
|
||||
setTimeout(function(){
|
||||
console.log(j);
|
||||
})
|
||||
}
|
||||
|
||||
```
|
||||
A.10个0 B.0~9 C.什么也不输出 D.10个10
|
||||
答案 B
|
||||
解析
|
||||
变量 j 是用 let 声明的,当前的 j 只在本轮循环中有效,每次循环的 j 其实都是一个新的变量,所以 setTimeout 定时器里面的 j 其实是不同的变量,即最后输出 12345。(若每次循环的变量 j 都是重新声明的,如何知道前一个循环的值?这是因为 JavaScript 引擎内部会记住前一个循环的值)。
|
||||
|
||||
6. 下面两段代码的执行结果为
|
||||
code
|
||||
|
||||
```
|
||||
console.log(a); //ReferenceError: a is not defined
|
||||
let a = "apple";
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
console.log(b); //undefined
|
||||
var b = "banana";
|
||||
|
||||
```
|
||||
|
||||
A. 报错 undefined B. undefined banana C.undefined undefined D. apple banana
|
||||
|
||||
答案 A
|
||||
解析
|
||||
变量 b 用 var 声明存在变量提升,所以当脚本开始运行的时候,b 已经存在了,但是还没有赋值,所以会输出 undefined。
|
||||
|
||||
变量 a 用 let 声明不存在变量提升,在声明变量 a 之前,a 不存在,所以会报错。
|
||||
|
||||
|
||||
7. 下面代码的执行结果为
|
||||
code
|
||||
```
|
||||
const PI = "3.1415926";
|
||||
PI=3.14
|
||||
console.log("PI")
|
||||
|
||||
```
|
||||
A.PI B.3.1415926 C. 报错 什么都不输出 D.3.14
|
||||
|
||||
答案 C
|
||||
解析 const 声明一个只读变量,声明之后不允许改变
|
||||
|
||||
8. 下面代码的执行结果为
|
||||
code
|
||||
|
||||
```
|
||||
const PI = "3.1415926";
|
||||
|
||||
const MY_AGE;
|
||||
console.log(MY_AGE)
|
||||
|
||||
```
|
||||
|
||||
A.MY_AGE B.报错 什么都不输出 C.3.1415926 D.undefined
|
||||
|
||||
答案 B
|
||||
解析 报错信息为 Uncaught SyntaxError: missing = in const declaration
|
||||
const 声明一个只读变量,声明之后不允许改变。意味着,一旦声明必须初始化,否则会报错。
|
||||
|
||||
|
||||
9. 下面代码的执行结果为
|
||||
```
|
||||
var PI = "a";
|
||||
if(true){
|
||||
console.log(PI);
|
||||
const PI = "3.1415926";
|
||||
}
|
||||
|
||||
```
|
||||
A.a B.PI C.ReferenceError: PI is not defined D.3.1415926
|
||||
|
||||
答案 C
|
||||
解析
|
||||
ES6 明确规定,代码块内如果存在 let 或者 const,代码块会对这些命令声明的变量从块的开始就形成一个封闭作用域。代码块内,在声明变量 PI 之前使用它会报错。
|
||||
|
||||
|
||||
10. 下面代码的执行结果为
|
||||
|
||||
```
|
||||
function test(){
|
||||
for (let i=1;i<3;i++) {
|
||||
console.log(i)
|
||||
}
|
||||
console.log(i)
|
||||
}
|
||||
|
||||
```
|
||||
A.1,2 B.2,2 C.undefined undefined D.报错
|
||||
|
||||
答案 D
|
||||
解析
|
||||
1、i 脱离了块作用域,let声明的变量只有在块作用域重用小 所以报错
|
||||
2、我们没有声明i调用的时候应该报undefined错误,这里报is not defined ,这是为什么呢?是因为es6默认(强制)开启了严格模式“use strict”,如果在es5中需要开启严格模式的话,在js文件的顶部加上“use strict”
|
||||
严格模式:变量未声明不能引用
|
||||
|
||||
11.下面不属于ECMAScript规范的范围的是:( )
|
||||
|
||||
A、数据类型
|
||||
|
||||
B、语法
|
||||
|
||||
C、DOM事件
|
||||
|
||||
D、内置对象和函数的标准库
|
||||
答案:C
|
||||
|
||||
解析:DOM事件不属于ECMAScript的部分;ECMAScript定义的内容:语法、类型、原型和继承、内置对象和函数的标准库。
|
||||
|
||||
考点: ECMAScript定义规范的理解,来自《第一节:什么是ES6?新手该如何理解》的内容。
|
||||
|
||||
12.下面不属于关键字let的特点的是:( )
|
||||
|
||||
A、只在 let 命令所在的代码块内有效
|
||||
|
||||
B、会产生变量提升现象
|
||||
|
||||
C、同一个作用域,不能重复声明同一个变量
|
||||
|
||||
D、不能在函数内部重新声明参数
|
||||
答案:B
|
||||
|
||||
解析:使用var关键字才会产生变量提升的现象。关键字let不会产生变量提升现象,所以必须先声明定义后使用,否则程序抛出异常。
|
||||
|
||||
考点:关键字let的使用注意事项,来自《第二节:ES6新增了let关键字,干嘛用的?》的内容。
|
||||
|
||||
13.关于关键字const,下列说法错误的是:()
|
||||
|
||||
A、用于声明常量,声明后不可修改
|
||||
|
||||
B、不会发生变量提升现象
|
||||
|
||||
C、不能重复声明同一个变量
|
||||
|
||||
D、可以先声明,不赋值。
|
||||
答案:D
|
||||
解析:声明后必须赋值,负责程序会抛出异常。
|
||||
|
||||
|
||||
|
||||
# 简答题
|
||||
|
||||
1. 说出至少5个ES6的新特性,并简述它们的作用。
|
||||
|
||||
答案 1).let关键字,用于声明只在块级作用域起作用的变量
|
||||
2).const关键字,用于声明一个常量
|
||||
3).解构赋值,一种新的变量赋值方式。常用来交换变量值,提取函数返回值,设置默认值等
|
||||
4).for-of遍历,可用来遍历具有Iterator接口的数据结构(Array,String,Set,Map,arguments,NodeList等)
|
||||
5).Set结构,存储不重复的成员的集合
|
||||
6).Map结构,键名可以是任何类型的键值对集合
|
||||
7).Promise对象,更合理、规范地处理异步操作。
|
||||
8).Class类,定义类和更简便地实现类的继承。
|
||||
|
||||
2. es5和es6的区别
|
||||
答案 ECMAScript5,即ES5,是ECMAScript的第五次修订,于2009年完成标准化ECMAScript6,即ES6,是ECMAScript的第六次修订,于2015年完成,也称ES2015ES6是继ES5之后的一次改进,相对于ES5更加简洁,提高了开发效率
|
||||
|
||||
3. var、let、const之间的区别
|
||||
|
||||
答案 var声明变量可以重复声明,而let不可以重复声明
|
||||
var是不受限于块级的,而let是受限于块级
|
||||
var会与window相映射(会挂一个属性),而let不与window相映射
|
||||
var可以在声明的上面访问变量,而let有暂存死区,在声明的上面访问变量会报错
|
||||
const声明之后必须赋值,否则会报错
|
||||
const定义不可变的量,改变了就会报错
|
||||
const和let一样不会与window相映射、支持块级作用域、在声明的上面访问变量会报错
|
||||
|
||||
BIN
考试/原题/es6/promise.docx
Normal file
BIN
考试/原题/es6/promise.docx
Normal file
Binary file not shown.
127
考试/原题/es6/promise.md
Normal file
127
考试/原题/es6/promise.md
Normal file
@@ -0,0 +1,127 @@
|
||||
#promise
|
||||
|
||||
## 填空
|
||||
下面的打印结果是什么
|
||||
```
|
||||
const promise = new Promise((resolve, reject) => {
|
||||
console.log(1)
|
||||
resolve()
|
||||
console.log(2)
|
||||
})
|
||||
promise.then(() => {
|
||||
console.log(3)
|
||||
})
|
||||
console.log(4)
|
||||
|
||||
```
|
||||
答案 1 2 4 3
|
||||
|
||||
|
||||
下面打印结果是什么
|
||||
|
||||
```
|
||||
const promise = new Promise((resolve, reject) => {
|
||||
//resolve('success1')
|
||||
|
||||
resolve('success2')
|
||||
reject('error)
|
||||
})
|
||||
|
||||
promise
|
||||
.then((res) => {
|
||||
console.log('then: ', res)
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log('catch: ', err)
|
||||
})
|
||||
|
||||
```
|
||||
答案 then: success1
|
||||
|
||||
下面打印结果是什么
|
||||
|
||||
```
|
||||
|
||||
Promise.resolve(1)
|
||||
.then((res) => {
|
||||
console.log(res)
|
||||
return 2
|
||||
})
|
||||
.catch((err) => {
|
||||
return 3
|
||||
})
|
||||
.then((res) => {
|
||||
console.log(res)
|
||||
})
|
||||
|
||||
```
|
||||
|
||||
答案 1 2
|
||||
|
||||
下面打印结果是
|
||||
|
||||
```
|
||||
|
||||
let a = 1;
|
||||
const promise = new Promise((resolve, reject) => {
|
||||
setTimeout(() => {
|
||||
console.log('once')
|
||||
console.log(a)
|
||||
resolve(a++)
|
||||
}, 1000)
|
||||
})
|
||||
|
||||
const start = Date.now()
|
||||
promise.then((res) => {
|
||||
console.log(res)
|
||||
})
|
||||
promise.then((res) => {
|
||||
console.log(res)
|
||||
})
|
||||
|
||||
```
|
||||
答案
|
||||
once
|
||||
1
|
||||
1
|
||||
|
||||
下面代码打印结果是
|
||||
|
||||
```
|
||||
async function asyncFn() {
|
||||
return 'hello world';
|
||||
}
|
||||
console.log(asyncFn())
|
||||
|
||||
```
|
||||
答案:
|
||||
Promise {<resolved>: "hello world"}
|
||||
|
||||
|
||||
下面代码打印结果是
|
||||
```
|
||||
|
||||
async function asyncFn() {
|
||||
return 1;
|
||||
}
|
||||
asyncFn()
|
||||
.then(res => {
|
||||
console.log(res);
|
||||
})
|
||||
|
||||
```
|
||||
答案 1
|
||||
|
||||
下面写法是否正确
|
||||
|
||||
```
|
||||
let a = new Promise((res)=>{
|
||||
console.log(1)
|
||||
res(1)
|
||||
})
|
||||
function name(){
|
||||
let a = await a;
|
||||
}
|
||||
|
||||
```
|
||||
答案 错误
|
||||
BIN
考试/原题/es6/setmap.docx
Normal file
BIN
考试/原题/es6/setmap.docx
Normal file
Binary file not shown.
218
考试/原题/es6/setmap.md
Normal file
218
考试/原题/es6/setmap.md
Normal file
@@ -0,0 +1,218 @@
|
||||
# setmap
|
||||
## 选择
|
||||
1. 下面哪个不是set的方法
|
||||
A.add B.delete C.has D.get
|
||||
答案 D
|
||||
|
||||
2. 下面代码执行的结果为
|
||||
|
||||
```
|
||||
let set = new Set([1, 2, 3, 4, 4]);
|
||||
set.add(5)
|
||||
set.add(6)
|
||||
set.add(5)
|
||||
console.log(set.size)
|
||||
|
||||
```
|
||||
A.8 B.5 C.6 D. 4
|
||||
答案 C
|
||||
|
||||
3. 下面代码执行的结果为
|
||||
|
||||
```
|
||||
let set = new Set([1, 2, 3, 4, 4]);
|
||||
set.set(5)
|
||||
set.add(6)
|
||||
set.add(5)
|
||||
console.log(set.size)
|
||||
|
||||
```
|
||||
A.报错 B.5 C.6 D. 4
|
||||
答案 A
|
||||
|
||||
4. 下面代码执行的结果为
|
||||
|
||||
```
|
||||
var mySet = new Set([1, 2, 3, 4, 4]);
|
||||
console.log([...mySet]);
|
||||
|
||||
|
||||
```
|
||||
A.[1, 2, 3, 4, 4] B.[1, 2, 3, 4] C.[[1, 2, 3, 4, 4]] D.[]
|
||||
答案 B
|
||||
|
||||
|
||||
5. 下面代码的执行结果为
|
||||
|
||||
```
|
||||
var myMap = new Map();
|
||||
var keyObj = {},
|
||||
|
||||
myMap.set(keyObj, "和键 keyObj 关联的值");
|
||||
console.log(myMap.get(keyObj));
|
||||
console.log(myMap.get({}));
|
||||
|
||||
```
|
||||
A."和键 keyObj 关联的值" {} B.报错 什么都不出 C.undefined null D."和键 keyObj 关联的值" undefined
|
||||
答案 D
|
||||
解析
|
||||
因为 keyObj !== {}
|
||||
|
||||
6. 下面代码的执行结果为
|
||||
```
|
||||
var myMap = new Map();
|
||||
var keyFunc = function () {}, // 函数
|
||||
|
||||
myMap.set(keyFunc, "和键 keyFunc 关联的值");
|
||||
|
||||
console.log(myMap.get(keyFunc)); // "和键 keyFunc 关联的值"
|
||||
console.log(myMap.get(function() {})) // undefined, 因为 keyFunc !== function () {}
|
||||
|
||||
```
|
||||
A."和键 keyFunc 关联的值" "和键 keyFunc 关联的值" B.报错 什么也不出
|
||||
C."和键keyFunc 关联的值" undefined D.undefined undefined
|
||||
|
||||
答案 C
|
||||
|
||||
7. 下面代码的执行结果为
|
||||
|
||||
```
|
||||
var myMap = new Map();
|
||||
myMap.set(NaN, "not a number");
|
||||
|
||||
console.log(myMap.get(NaN)); // "not a number"
|
||||
|
||||
var otherNaN = Number("foo");
|
||||
console.log(myMap.get(otherNaN)); // "not a number"
|
||||
|
||||
```
|
||||
A.
|
||||
8.
|
||||
## 填空
|
||||
1. 下面代码执行后 size的值打印出来是
|
||||
|
||||
```
|
||||
let s = new Set();
|
||||
s.add([1]);
|
||||
s.add([1]);
|
||||
console.log(s.size);
|
||||
|
||||
```
|
||||
|
||||
答案 2
|
||||
解析:
|
||||
这个问题类似于问这个:
|
||||
|
||||
let a = [1];
|
||||
let b = [1];
|
||||
console.log(a === b); // false
|
||||
|
||||
简单的说就是a和b是两个数组,两个引用对象,怎么可能相等呢?所以对于set来说,这俩不重复,所以是2!
|
||||
|
||||
1. 下面代码执行后 con的值打印出来是
|
||||
答案 undefined
|
||||
解析 因为set的时候用的数组[1]和get的时候用的数组[1]是分别两个不同的数组,只不过它们元素都是1。它们是分别定义的两个数组,并不是同一个值。
|
||||
```
|
||||
let map = new Map();
|
||||
map.set([1],"ES6系列");
|
||||
let con = map.get([1]);
|
||||
console.log(con);
|
||||
|
||||
```
|
||||
|
||||
3. 用 声明一个set结构
|
||||
答案 new Set
|
||||
|
||||
|
||||
4. 通过 可以实现对set结构中元素的遍历
|
||||
|
||||
答案 for of foreach
|
||||
|
||||
|
||||
|
||||
4. 下面代码执行的结果为
|
||||
|
||||
```
|
||||
|
||||
var first = new Map([[1, 'one'], [2, 'two'], [3, 'three'],]);
|
||||
var second = new Map([[1, 'uno'], [2, 'dos']]);
|
||||
var merged = new Map([...first, ...second]);
|
||||
console.log(merged)
|
||||
|
||||
```
|
||||
答案 { 1 → "uno", 2 → "dos", 3 → "three" }
|
||||
解析 合并两个 Map 对象时,如果有重复的键值,则后面的会覆盖前面的,对应值即 uno,dos, three
|
||||
|
||||
|
||||
4. 下面代码执行的结果为
|
||||
|
||||
```
|
||||
|
||||
var myMap = new Map();
|
||||
var keyString = "a string";
|
||||
|
||||
myMap.set(keyString, "和键'a string'关联的值");
|
||||
|
||||
var jieguo = myMap.get(keyString); // "和键'a string'关联的值"
|
||||
var jieguo1 = myMap.get("a string");
|
||||
console.log(jieguo,jieguo1)
|
||||
|
||||
```
|
||||
答案 和键'a string'关联的值 和键'a string'关联的值
|
||||
|
||||
|
||||
|
||||
map 遍历生成函数及其作用
|
||||
答案
|
||||
Map.prototype.keys():返回键名的遍历器。
|
||||
Map.prototype.values():返回键值的遍历器。
|
||||
Map.prototype.entries():返回所有成员的遍历器。
|
||||
Map.prototype.forEach():遍历 Map 的所有成员。
|
||||
|
||||
|
||||
|
||||
|
||||
## 简答题
|
||||
1. maps和objects的区别
|
||||
答案
|
||||
一个 Object 的键只能是字符串或者 Symbols,但一个 Map 的键可以是任意值。
|
||||
Map 中的键值是有序的(FIFO 原则),而添加到对象中的键则不是。
|
||||
Map 的键值对个数可以从 size 属性获取,而 Object 的键值对个数只能手动计算。
|
||||
Object 都有自己的原型,原型链上的键名有可能和你自己在对象上的设置的键名产生冲突。
|
||||
|
||||
|
||||
2. WeakSet和Set的区别
|
||||
答案
|
||||
|
||||
WeakSet的成员只能是对象,而不能是其他类型的值
|
||||
WeakSet中的对象都是弱引用,即垃圾回收机制不考虑WeakSet对该对象的引用,也就是说,如果其他对象都不再引用该对象,那么垃圾回收机制会自动回收该对象所占用的内存,不考虑该对象还存在于WeakSet之中。这个特点意味着,无法引用WeakSet的成员,因此WeakSet是不可遍历的。
|
||||
|
||||
|
||||
3. set 和 map的区别
|
||||
答案 Set是一种类似数组的集合类型,它与数组不同的是,不允许存在重复数据;常用操作方法有:add,delete,has,clear等;遍历使用forEach;
|
||||
|
||||
Map是一种类似对象的集合类型,它与对象不同的是,key可以接受对象类型,常用的操作方法有:set,get,has,delete等;遍历使用forEach
|
||||
|
||||
|
||||
|
||||
4. 定义一个函数 将传入的数组元素去重后返回(可以写多种方法)
|
||||
详见 https://segmentfault.com/a/1190000016418021?utm_source=tag-
|
||||
|
||||
|
||||
|
||||
5. 用 foreach 和 for of 分别遍历下面这个set
|
||||
var myMap=new Map()
|
||||
myMap.set(0, "zero");
|
||||
myMap.set(1, "one");
|
||||
|
||||
|
||||
|
||||
var first = new Map([[1, 'one'], [2, 'two'], [3, 'three'],]);
|
||||
var second = new Map([[1, 'uno'], [2, 'dos']]);
|
||||
var merged = new Map([...first, ...second]);
|
||||
|
||||
|
||||
6.module、import
|
||||
|
||||
|
||||
|
||||
BIN
考试/原题/es6/~$romise.docx
Normal file
BIN
考试/原题/es6/~$romise.docx
Normal file
Binary file not shown.
BIN
考试/原题/es6/解构赋值.docx
Normal file
BIN
考试/原题/es6/解构赋值.docx
Normal file
Binary file not shown.
153
考试/原题/es6/解构赋值.md
Normal file
153
考试/原题/es6/解构赋值.md
Normal file
@@ -0,0 +1,153 @@
|
||||
# 解构赋值
|
||||
|
||||
## 选择
|
||||
1. 下面代码执行后 a,b,c的值分别是
|
||||
|
||||
```
|
||||
let [a, b, c] = [1, 2, 3];
|
||||
|
||||
```
|
||||
A.1,2,3 B.2,3,1 C.未定义 D.undefined undefined undefined
|
||||
|
||||
答案 A
|
||||
解析 在解构中,有下面两部分参与:
|
||||
解构的源,解构赋值表达式的右边部分。
|
||||
解构的目标,解构赋值表达式的左边部分。
|
||||
|
||||
2. 下面代码执行后 a,b,c的值分别是
|
||||
code
|
||||
|
||||
```
|
||||
let [a, [[b], c]] = [4, [[5], 6]];
|
||||
|
||||
```
|
||||
A.4 [5] 6 B.[4, [[5], 6]] undefined undefined C.4,5,6 D. 4,[[5], 6]
|
||||
|
||||
答案 C
|
||||
|
||||
3. 下面代码执行后 a,b的值分别是
|
||||
code
|
||||
|
||||
```
|
||||
let [a, , b] = [1, 2, 3];
|
||||
|
||||
```
|
||||
A.1,2 B.1,3 C.2,3 D.1,3
|
||||
|
||||
答案 D
|
||||
|
||||
4. 下面代码执行后 a,b的值分别是
|
||||
CODE
|
||||
|
||||
```
|
||||
let [a = 1, b] = []; // a = 1, b = undefined
|
||||
```
|
||||
|
||||
A.1 undefined B. 1 报错 C.[] D. undefined undefined
|
||||
|
||||
答案 A
|
||||
|
||||
5. 下面代码执行后 a b的值分别是
|
||||
code
|
||||
```
|
||||
let [a, ...b] = [1, 2, 3];
|
||||
|
||||
```
|
||||
|
||||
A. 1; 2,3 B. 1;[1,2,3] C.1,[2,3] D.1,[]
|
||||
|
||||
答案 C
|
||||
|
||||
6. 下面代码执行后 a,b,c,e,d的值分别是
|
||||
code
|
||||
|
||||
```
|
||||
let [a, b, c, d, e] = 'hello';
|
||||
|
||||
```
|
||||
A h,e,l,l,o B.h,e,l,o,l C. 所有的都是undefined D. 所有的都是空数组
|
||||
|
||||
答案 B
|
||||
|
||||
7. 下面代码执行后 a的值为
|
||||
code
|
||||
|
||||
```
|
||||
let [a = 2] = [undefined]; // a = 2
|
||||
|
||||
```
|
||||
A.2 B.undefined C.[] D.报错
|
||||
|
||||
答案 A
|
||||
|
||||
8. 下面代码执行后foo,bar 的值分别是
|
||||
code
|
||||
|
||||
```
|
||||
let { foo, bar } = { foo: 'aaa', bar: 'bbb' };
|
||||
|
||||
```
|
||||
A. foo bar B.aaa,bbb C.foo bbb D.aaa bar
|
||||
|
||||
答案 B
|
||||
|
||||
9. 下面代码执行后foo 的值为
|
||||
code
|
||||
|
||||
```
|
||||
let { baz : foo } = { baz : 'ddd' };
|
||||
|
||||
```
|
||||
A. baz B.foo C.ddd D.undefiend
|
||||
|
||||
答案 C
|
||||
|
||||
10. 下面代码执行后X 的值为
|
||||
code
|
||||
|
||||
```
|
||||
let obj = {p: ['hello', {y: 'world'}] };
|
||||
let {p: [x, { }] } = obj;
|
||||
|
||||
```
|
||||
|
||||
A.hello B.world C.p D.obj
|
||||
|
||||
答案 A
|
||||
|
||||
11. 下面代码执行后x,y 的值分别为
|
||||
code
|
||||
|
||||
```
|
||||
let obj = {p: [{y: 'world'}] };
|
||||
let {p: [{ y }, x ] } = obj
|
||||
|
||||
```
|
||||
|
||||
A.undefined undefined B. obj world C. 报错 obj D.undefined world
|
||||
|
||||
答案 D
|
||||
|
||||
|
||||
12. 下面代码执行后a,b,rest 的值分别为
|
||||
code
|
||||
|
||||
```
|
||||
let {a, b, ...rest} = {a: 10, b: 20, c: 30, d: 40};
|
||||
|
||||
```
|
||||
|
||||
A. 10 20 30,40 B.10 20 [30,40] C. 10 20 [] D.undefined undefined []
|
||||
|
||||
答案 B
|
||||
|
||||
|
||||
13. 下面代码执行后aa,bb 的值分别为
|
||||
code
|
||||
|
||||
```
|
||||
let {a: aa = 10, b: bb = 5} = {a: 3};
|
||||
|
||||
```
|
||||
|
||||
A. 3 5 B.10 5 C. 3 undefined D. 报错
|
||||
583
考试/原题/jq/jquery考试题.md
Normal file
583
考试/原题/jq/jquery考试题.md
Normal file
@@ -0,0 +1,583 @@
|
||||
一.选择题
|
||||
|
||||
1.当DOM加载完成后要执行的函数,下面哪个是正确的?( ) C
|
||||
|
||||
A、jQuery(expression, [context]) B、jQuery(html,[ownerDocument])
|
||||
|
||||
C、jQuery(callback) D、jQuery(elements)
|
||||
```DOM加载完成后会触发domready。先于onload事件。
|
||||
jquery中通常用。$(doucment).ready(fn);或$(fn)或jquery(fn)
|
||||
都是触发的ready的回调
|
||||
```
|
||||
|
||||
2.下面哪一个是用来追加到指定元素的末尾的?( ) C
|
||||
|
||||
A、insertAfter() B、append() C、appendTo() D、after()
|
||||
|
||||
```
|
||||
在元素内部添加
|
||||
append:向每个匹配的元素内部追加内容
|
||||
<p>我想说:</p>
|
||||
$("p").append("<b>你好</b>")
|
||||
<p>我想说:<b>你好</b></p>
|
||||
|
||||
appendTo:将所有匹配的元素追加到指定的元素中
|
||||
<p>我想说:</p>
|
||||
$("<b>你好</b>").appendTo("p")
|
||||
<p>我想说:<b>你好</b></p>
|
||||
|
||||
prepend:向每个匹配的元素内部前置添加内容
|
||||
<p>我想说:</p>
|
||||
$("p").prepend("<b>你好</b>")
|
||||
<p><b>你好</b>我想说:</p>
|
||||
|
||||
prependTo:将所有匹配的元素前置到指定的元素中
|
||||
<p>我想说:</p>
|
||||
$("<b>你好</b>").prependTo("p")
|
||||
<p><b>你好</b>我想说:</p>
|
||||
|
||||
在元素外部添加
|
||||
after:在每个匹配元素之后插入内容
|
||||
<p>我想说:</p>
|
||||
$("p").after("<b>你好</b>")
|
||||
<p>我想说:</p><b>你好</b>
|
||||
|
||||
insertAfter:将所有配的元素插入到指定元素的后面
|
||||
<p>我想说:</p>
|
||||
$("<b>你好</b>").insertAfter("p")
|
||||
<p>我想说:</p><b>你好</b>
|
||||
|
||||
before:在每个匹配的元素之前插入内容
|
||||
<p>我想说:</p>
|
||||
$("p").before("<b>你好</b>")
|
||||
<b>你好</b><p>我想说:</p>
|
||||
|
||||
insertBefore:将所有匹配的元素插入到指定的元素的前面
|
||||
<p>我想说:</p>
|
||||
$("<b>你好</b>").insertBefore("p")
|
||||
<b>你好</b><p>我想说:</p>
|
||||
|
||||
```
|
||||
|
||||
3.下面哪一个不是jquery对象访问的方法? ( ) D
|
||||
|
||||
A、each() B、size() C、.length D、onclick()
|
||||
|
||||
```
|
||||
onclick()是js方法,jq直接.click()
|
||||
```
|
||||
|
||||
4.在jquery中想要找到所有元素的同辈元素,下面哪一个是可以实现的?() C
|
||||
A、eq(index) B、find(expr) C、siblings([expr]) D、next()
|
||||
|
||||
```
|
||||
A :eq() 选择器选取带有指定 index 值的元素。$("xx:eq(index)")
|
||||
index 值从 0 开始,所有第一个元素的 index 值是 0(不是 1)。
|
||||
B find() 方法返回被选元素的后代元素。 $(selector).find(filter)
|
||||
后代是子、孙、曾孙,依此类推。
|
||||
C siblings() 获得匹配集合中每个元素的同胞,通过选择器进行筛选是可选的。 .siblings(selector)
|
||||
D next() 获得匹配元素集合中每个元素紧邻的同胞元素。如果提供选择器,则取回匹配该选择器的下一个同胞元素
|
||||
.next(selector)
|
||||
```
|
||||
|
||||
5.如果需要匹配包含文本的元素,用下面哪种来实现? ( ) B
|
||||
|
||||
A、text() B、contains() C、input() D、attr(name)
|
||||
|
||||
```
|
||||
$.contains() 方法用于判断指定元素内是否包含另一个元素。即判断另一个DOM元素是否是指定DOM元素的后代
|
||||
$.contains( container, contained )
|
||||
```
|
||||
|
||||
6.如果想要找到一个表格的指定行数的元素,用下面哪个方法可以快速找到指定元素? ( C)
|
||||
|
||||
A、text() B、get() C、eq() D、contents( )
|
||||
|
||||
```
|
||||
:eq() 选择器选取带有指定 index 值的元素。$("xx:eq(index)")
|
||||
```
|
||||
|
||||
7.如果想被选元素之后插入 HTML 标记或已有的元素,下面哪个是实现该功能的? ( ) D
|
||||
|
||||
A、append(content) B、 appendTo(content)
|
||||
|
||||
C、insertAfter(content) D、after(content)
|
||||
|
||||
```
|
||||
解析同2题
|
||||
```
|
||||
|
||||
8.在jquey中,如果想要从DOM中删除所有匹配的元素,下面哪一个是正确的?( ) C
|
||||
|
||||
A、delete() B、empty() C 、remove() D、removeAll()
|
||||
|
||||
```
|
||||
如需删除元素和内容,一般可使用以下两个 jQuery 方法
|
||||
remove() - 删除被选元素(及其子元素)
|
||||
empty() - 从被选元素中删除子元素
|
||||
```
|
||||
|
||||
9.在jquery中,想要给第一个指定的元素添加样式,下面哪一个是正确的? ( ) D
|
||||
|
||||
A、first B、eq(1) C、css(name) D、css(name,value)
|
||||
|
||||
```
|
||||
css() 方法设置或返回被选元素的一个或多个样式属性。 .css("propertyname","value");
|
||||
```
|
||||
|
||||
10.为每一个指定元素的指定事件(像click) 绑定一个事件处理器函数,下面哪个是用来实现该功能的? ( ) B
|
||||
|
||||
A、trgger (type) B、bind(type) C、one(type) D、bind
|
||||
|
||||
```
|
||||
bind() 方法为被选元素添加一个或多个事件处理程序,并规定事件发生时运行的函数 $(selector).bind(event,data,function)
|
||||
trigger() 方法触发被选元素的指定事件类型。 $(selector).trigger(event,[param1,param2,...])
|
||||
one() 方法为被选元素附加一个或多个事件处理程序,并规定当事件发生时运行的函数。
|
||||
当使用 one() 方法时,每个元素只能运行一次事件处理器函数。 $(selector).one(event,data,function)
|
||||
```
|
||||
|
||||
11.在jquery中想要实现通过远程http get请求载入信息功能的是下面的哪一下事( C )
|
||||
|
||||
A、$.ajax() B、load(url) C、$.get(url) D$. getScript(url)
|
||||
|
||||
```
|
||||
$.get() 方法通过 HTTP GET 请求从服务器上请求数据。 $.get(URL,callback);
|
||||
$.post() 方法通过 HTTP POST 请求从服务器上请求数据。 $.post(URL,data,callback);
|
||||
```
|
||||
|
||||
12.在一个表单中,如果想要给输入框添加一个输入验证,可以用下面的哪个事件实现? ( D)
|
||||
|
||||
A、hover(over ,out) B、keypress (fn) C、change() D、change(fn)
|
||||
|
||||
```
|
||||
当元素的值改变时发生 change 事件(仅适用于表单字段)。
|
||||
change() 方法触发 change 事件,或规定当发生 change 事件时运行的函数。 $(selector).change(function)
|
||||
```
|
||||
|
||||
13.当一个文本框中的内容被选中时,想要执行指定的方法时,可以使用下面哪个事件来实现? ( ) C
|
||||
|
||||
A、click(fn) B、change(fn) C、select(fn) D、bind(fn)
|
||||
|
||||
```
|
||||
当 textarea 或文本类型的 input 元素中的文本被选择时,会发生 select 事件。
|
||||
select() 方法触发 select 事件,或规定当发生 select 事件时运行的函数。 $(selector).select(function)
|
||||
```
|
||||
|
||||
14.以下 jquery 对象方法中,使用了事件委托的是( ) D
|
||||
A、bind B. 、mousedown C、change D、on
|
||||
|
||||
```
|
||||
on() 方法在被选元素及子元素上添加一个或多个事件处理程序。
|
||||
$(selector).on(event,childSelector,data,function)
|
||||
```
|
||||
|
||||
15.怎么才能隐藏下面的元素? C
|
||||
<input id=”id_txt” name=”txt” type=”text”value=””/>
|
||||
A. ``` $(“id_txt”).hide(); ```
|
||||
B. ``` $(#id_txt).remove(); ```
|
||||
C.``` $(“#id_txt”).hide();```
|
||||
D.``` $(“#id_txt”).remove(); ```
|
||||
|
||||
```
|
||||
如果被选的元素已被显示,则隐藏该元素。 $(selector).hide(speed,callback)
|
||||
```
|
||||
|
||||
16.在jQuery中
|
||||
|
||||
$( '#hello' ).css ( "color","#f0000" )
|
||||
|
||||
$( '#hello' ).css ( "color" )
|
||||
|
||||
分别表示的含义是: (多选) AB
|
||||
|
||||
A. $(‘#hello’).css("color",#0000)表示选择id为hello 的元素,并设置颜色为"f0000"
|
||||
|
||||
B.$( '#hello' ).css ( "color" )表示选择id为hello 的元素,并且取到该元素字体显示的颜色
|
||||
|
||||
C. $(‘#hello' )css("color""f0000")表示选择CSS类为hello的元素,并且取到该元素字体显示的颜色
|
||||
|
||||
D. $('hello')css("color")表示选择CSS类为hello 的元素,并且取到该元素字体显示的颜色
|
||||
|
||||
17.在jquery中,选择使用myClass类的css的所有元素( )A
|
||||
|
||||
A、$(".myClass") B. 、$("#myClass") C、${*} D、${‘body’}
|
||||
|
||||
```
|
||||
常用选择器
|
||||
1.id选择器
|
||||
<div id="myDiv”>myDiv</div>
|
||||
据元素的id属性中给定的值$("#myDiv")
|
||||
2.element选择器
|
||||
<div>DIV1</div>
|
||||
查找一个DIV元素,指向DOM节点的标签名$('div')
|
||||
3.类选择器
|
||||
<div class="hello"></div>
|
||||
根据元素的class属性中给定的值$('.hello')
|
||||
4.*选择器
|
||||
查找每一个元素
|
||||
5.selecotr1,selector2,selector3
|
||||
将每一个选择器匹配到的元素合并后一起返回。
|
||||
$("div,span")
|
||||
6.后代选择器
|
||||
在给定祖先元素下匹配所有的后代元素
|
||||
$("form input")
|
||||
7.子代选择器
|
||||
在给定的父元素下皮匹配所有的子元素
|
||||
$("form > input")
|
||||
8.相邻元素选择器 prev+next
|
||||
匹配所有进阶在prev元素后的next元素
|
||||
例:$("label+input")
|
||||
9.同辈元素选择器 prev~siblings
|
||||
匹配prev元素的所有同辈siblings元素
|
||||
10.首元素选择器 :first
|
||||
获取第一个元素 $("li:first")
|
||||
```
|
||||
|
||||
18.在jquery中指定一个类,如果存在就执行删除功能,如果不存在就执行添加功能,下面哪一个是可以直接完成该功能的?() C
|
||||
|
||||
A、removeClass() B、deleteClass() C、toggleClass(class) D.addClass()
|
||||
|
||||
```
|
||||
toggleClass() 对设置或移除被选元素的一个或多个类进行切换。
|
||||
该方法检查每个元素中指定的类。如果不存在则添加类,如果已设置则删除之。这就是所谓的切换效果
|
||||
$(selector).toggleClass(function(index,class),switch)
|
||||
```
|
||||
|
||||
19.JQuery中,属于鼠标事件方法的选项是( ) B
|
||||
|
||||
A. onclick( ) B. mouseover( ) C. onmouseout( ) D. blur( )
|
||||
|
||||
```
|
||||
1、click事件:点击鼠标左键时触发
|
||||
2、dbclick事件:迅速连续的两次点击时触发
|
||||
3、mousedown事件:按下鼠标时触发
|
||||
4、mouseup事件:松开鼠标时触发
|
||||
5、mouseover事件:鼠标从一个元素移入另一个元素时触发
|
||||
mouseout事件:鼠标移出元素时触发
|
||||
6、mouseenter事件:鼠标移入元素时触发
|
||||
mouseleave事件:鼠标移出元素
|
||||
7、hover事件
|
||||
8、toggle事件:鼠标点击切换事件
|
||||
```
|
||||
|
||||
20.在Jquery中,既可绑定两个或多个事件处理器函数,以响应被选元素的轮流的 click 事件,又可以切换元素可见状态的方法是( ) B
|
||||
|
||||
A.. hide( ) B. toggle( ) C. hover( ) D.slideUp( )
|
||||
|
||||
```
|
||||
toggle() 方法切换元素的可见状态。
|
||||
如果被选元素可见,则隐藏这些元素,如果被选元素隐藏,则显示这些元素。
|
||||
$(selector).toggle(speed,callback,switch)
|
||||
```
|
||||
|
||||
21.在Jquery中,关于fadeIn()方法正确的是( ) B
|
||||
|
||||
A. 可以改变元素的高度
|
||||
|
||||
B 可以逐渐改变被选元素的不透明度,从隐藏到可见(褪色效果)
|
||||
|
||||
C 可以改变元素的宽度
|
||||
|
||||
D 与fadeIn( )相对的方法是fadeOn( )
|
||||
|
||||
```
|
||||
fadeIn() 方法使用淡入效果来显示被选元素,假如该元素是隐藏的。 $(selector).fadeIn(speed,callback)
|
||||
```
|
||||
|
||||
22.下面选项中()失去焦点 A
|
||||
|
||||
A.blur() B.select() C.docus() D.onfocus()
|
||||
|
||||
```
|
||||
当元素失去焦点时发生 blur 事件。
|
||||
```
|
||||
|
||||
23.下列选项中,不属于键盘事件的是( )。D
|
||||
|
||||
A.keydown B.keyup C.keypress D.ready
|
||||
|
||||
```
|
||||
1.keydown()事件
|
||||
当按钮被按下时,发生 keydown 事件。
|
||||
2.keypress()事件
|
||||
keypress 当按钮被按下时,会发生该事件,我们可以理解为按下并抬起同一个按键。
|
||||
3.keyup事件
|
||||
keyup 事件会在按键释放时触发,也就是你按下键盘起来后的事件
|
||||
```
|
||||
|
||||
24.以下jQuery代码运行后,对应的HTML代码变为( ) B
|
||||
|
||||
HTML代码:<p>你好</p>
|
||||
|
||||
jQuery代码:$(“p”).append(“<b>快乐编程</b>”);
|
||||
|
||||
A. <p>你好</p><b>快乐编程</b>
|
||||
|
||||
B. <p>你好<b>快乐编程</b></p>
|
||||
|
||||
C. <b>快乐编程</b><p>你好</p>
|
||||
|
||||
D. <p><b>快乐编程</b>你好</p>
|
||||
|
||||
```
|
||||
同2
|
||||
```
|
||||
|
||||
25.下列选项中,有关数据验证的说法中正确的是( )。D
|
||||
|
||||
A.使用客户端验证可以减轻服务器压力
|
||||
|
||||
B.客观上讲,使用客户端验证也会受限于客户端的浏览器设置。
|
||||
|
||||
C. 基于JavaScript的验证机制正是将服务器的验证任务转嫁至客户端,有助于合理使用资源。
|
||||
|
||||
D. 以上说法均正确
|
||||
|
||||
26.以下关于Jquery优点的说法中错误的是( ) C
|
||||
|
||||
A.jquery的体积较小,压缩以后,大约只有100kb
|
||||
|
||||
B.jquery封装了大量的选择器、DOM操作、事件处理,使用起来比JavaScript简单得多
|
||||
|
||||
C.jquery的浏览器兼容很好,能兼容所有的浏览器
|
||||
|
||||
D.jquery易扩展,开发者可以自己编写jquery的扩展插件
|
||||
|
||||
27.以下()函数不是jQuery内置的与AJAX相关的函数。D
|
||||
|
||||
A、 $.ajax() B.$.get() C.$.post() D.$.each()
|
||||
|
||||
```
|
||||
each() 方法规定为每个匹配元素规定运行的函数。 $(selector).each(function(index,element))
|
||||
```
|
||||
|
||||
28.以下()选项不能够正确地得到这个标签:( ) B
|
||||
|
||||
<input id="btnGo"type=”buttom” value=”点击”class=”btn”>
|
||||
|
||||
A.$(“#btnGo”) B.$(“.btnGo”)
|
||||
|
||||
C.$(“.btn”) D.$(“input[type=’button’]”)
|
||||
|
||||
29.在jQuery中被誉为工厂函数的是()C
|
||||
|
||||
A.ready() B.function() C。$() D.next( )
|
||||
|
||||
二.填空题
|
||||
|
||||
1. jquery访问对象中的size()方法的返回值和jQuery对象的______属性一样. length
|
||||
|
||||
2. jquery中$(this).get(0)的写法和_______是等价的。$(this)[0])
|
||||
|
||||
3. 现有一个表格,如果想要匹配所有行数为偶数的,用___实现,奇数的用_____实现
|
||||
|
||||
even odd
|
||||
|
||||
4. 在一个表单里,想要找到指定元素的第一个元素用____实现,那么第二个元素用_____
|
||||
|
||||
实现。 first eq(1)
|
||||
|
||||
5. 在jquery 中,用一个表达式来检查当前选择的元素集合,使用_____来实现,如果这个表达式失效,则返回____值。 is(expr) false
|
||||
|
||||
6. 在编写页面的时候,如果想要获取指定元素在当前窗口的相对偏移,用____来实现,该方法的返回值有两个属性,分别是____和_____ offset, top, left
|
||||
|
||||
7. 在一个表单中,如果将所有的div元素都设置为绿色,实现功能是_______ $( “div”).css( “color”,”green' )
|
||||
|
||||
8. 在jquery 中,当鼠标指针悬停在被选元素上时要运行的两个方法,实现该操作的是_____ $(selector).hover(inFunction,outFunction)
|
||||
|
||||
9. 在jquery中,想让一个元素隐藏,用_____实现,显示隐藏的元素用____实现
|
||||
|
||||
hide(), show()
|
||||
|
||||
10. 在div元素中,包含了一个<span>元素,通过has选择器获取<div>元素中的<span>元素的语法是____ $("div:has(span)");
|
||||
|
||||
11. 在<ul>元素中,添加了多个<li>元素,通过jquery选择器获取最后一个<li>元素的方法是______ $("li:last")
|
||||
|
||||
12. 在三个<ul>元素中,分别添加多个<li>元素,通过jQuery中的子元素选择器,将这三个<ul>元素中的第一个<li>元素隐藏,代码是______ $("li:first-child").hide();
|
||||
|
||||
13. 在页面的表单中增加了多个<input>类型的复选框元素,其中有的处于选中状态,通过jQuery选择器,将这些选中状态的元素隐藏,代码为_____ $("forminput:checked").hide()
|
||||
|
||||
14. 在ajax中data主要有______. _______ . ___________三种方式 html拼接的,json数组,form表单经serialize()序列化的
|
||||
|
||||
15. ______方法用于模拟光标悬停事件 hover()
|
||||
|
||||
16. jQuery中提供了__________方法可以停止冒泡 stopPropagation()
|
||||
|
||||
17. 可以用_______,阻止这些默认的行为例如单击超链接后会自动跳转,单击"提交"按钮后表单会提交等 event.preventDefault()
|
||||
|
||||
18. formData:返回一个________,可以通过循环调用来校验 数组
|
||||
|
||||
19. jQuery的______可以给现在元素附加新的元素 html()
|
||||
|
||||
20. jQuery中的选择器大致分为:________ . ________ ._____ .___________
|
||||
|
||||
基本选择器,层次选择器,过滤选择器,表单选择器
|
||||
|
||||
21. _______方法用于处理命名冲突 conflict()
|
||||
|
||||
三.判断题
|
||||
|
||||
1. window.onload必须等到页面内包括图片的所有元素加载完毕后才能执行(✔)
|
||||
|
||||
2. on()方法在被选元素及子元素上添加一个或多个事件处理程序(✔)
|
||||
|
||||
3. $("this")是使用标签选择器,查找名为this的标签(✔)
|
||||
|
||||
4. nextAll() 不能替代$('prev~siblindgs')选择器(×)
|
||||
|
||||
5. 在一个网页中一个Id可以用很多次(×)
|
||||
|
||||
6. 在jquery中可以用 replaceWith() 和 replaceAll() 替换节点(✔)
|
||||
|
||||
7. $('prev~div') 能选择'所有的的同辈<div>元素 (×)
|
||||
|
||||
8. jQuery中addClass()方法 可以来设置和获取 样式 (✔)
|
||||
|
||||
9. $.getScript()方法可以加载.js文件,需要对javascript文件进行处理 (×)
|
||||
|
||||
10. delegate() 方法为指定的元素(属于被选元素的子元素)添加一个或多个事件处理程序,并规定当这些事件发生时运行的函数(✔)
|
||||
|
||||
11. jquery的load()方法中data 参数是必须的(×)
|
||||
|
||||
12. nextAll() 方法返回被选元素的所有跟随的同胞元素(✔)
|
||||
|
||||
13. parent() 方法返回被选元素的所有祖先元素,它一路向上直到文档的根元素(×)
|
||||
|
||||
14. toggle() 方法在被选元素上进行 hide() 和 show() 之间的切换。(✔)
|
||||
|
||||
15. $('div > span').css('color', '#FF0000');的作用是选取div下的所有span元素,将字体颜色设为红色(×)
|
||||
|
||||
16. jQuery是一个javascript库(✔)
|
||||
|
||||
17. 通过 jQuery,$("div.intro") 能够选取的元素是class="intro" 的首个 div 元素(×)
|
||||
|
||||
18. jQuery.ajaxAsync()方法用于执行异步 HTTP 请求(×)
|
||||
|
||||
19. jQuery 是 W3C 标准(×)
|
||||
|
||||
20. jQueryget请求会将参数跟在URL后进行传递,而POST请求则是作为HTTP消息的实体内容发送给Web服务器的,这种传递是对用户不可见的。(✔)
|
||||
|
||||
四.简答题
|
||||
|
||||
1.什么是jQuery?
|
||||
答案:jQuery是继prototype之后又一个优秀的Javascrīpt框架
|
||||
|
||||
|
||||
|
||||
2.简述domready和onload事件的区别?图片的onloaddomready页面onload的先后顺序,并简述原因。
|
||||
|
||||
答案:domready在DOM加载完毕时触发;onload在页面所有元素都已经准备好时触发,包括图片、脚本、样式,首先domready,其次图片的onload,最后页面的onload
|
||||
|
||||
|
||||
|
||||
3.请解释 XMLHttpRequest 对象,并简要说明 jQuery 中的 $.ajax 方法使用。
|
||||
|
||||
答案:XMLHttpRequest对象为我们提供了一个访问http协议的接口,可以与服务器交互数据,实现页面的局部刷新。$.ajax是JQ中封装好的使用ajax的方法,使用时传入URL、数据类型、失败成功的调用函数等等;
|
||||
$.ajax({
|
||||
url:'',
|
||||
type:'get/post',
|
||||
data:{},
|
||||
dataType:'',
|
||||
success:function(data){
|
||||
//....
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
4.图片懒加载技术会让图片进入视野之后延迟一小段时间才让用户看到图片,体验不好。如何改进?
|
||||
|
||||
答案:图片预加载,将所有图片设定一个src,提前缓存在本地,当用户需要的时候直接从本地加载。牺牲了性能换得了更好的用户体验.
|
||||
|
||||
|
||||
|
||||
5. jquery中的选择器 和 css中的选择器有区别吗?
|
||||
|
||||
答案:jQuery选择器支持CSS里的选择器,jQuery选择器可用来添加样式和添加相应的行为,CSS 中的选择器是只能添加相应的样式
|
||||
|
||||
|
||||
|
||||
6. jquery中$.get()提交和$.post()提交有区别吗?
|
||||
|
||||
答: 1 $.get() 方法使用GET方法来进行异步请求的。 $.post() 方法使用POST方法来进行异步请求的。 2 get请求会将参数跟在URL后进行传递,而POST请求则是作为HTTP消息的实体 内容发送给Web服务器的,这种传递是对用户不可见的。 3 get方式传输的数据大小不能超过2KB 而POST要大的多 4 GET 方式请求的数据会被浏览器缓存起来,因此有安全问题。
|
||||
|
||||
|
||||
|
||||
7. 如何来设置和获取HTML 和文本的值?
|
||||
|
||||
答案:html()方法 类似于innerHTML属性 可以用来读取或者设置某个元素中的HTML内容 注意:html() 可以用于xhtml文档 不能用于xml文档 text()类似于innerText属性 可以用来读取或设置某个元素中文本内容。 val() 可以用来设置和获取元素的值
|
||||
|
||||
|
||||
|
||||
8. 选择器中 id,class有什么区别?
|
||||
|
||||
答案:在网页中 每个id名称只能用一次,class可以允许重复使用
|
||||
|
||||
|
||||
|
||||
9. .jquery表单提交前有几种校验方法?分别为??
|
||||
|
||||
答案:formData:返回一个数组,可以通过循环调用来校验 jaForm:返回一个jQuery对象,所有需要先转换成dom对象 fieldValue:返回一个数组 beforeSend()
|
||||
|
||||
|
||||
|
||||
10. jQuery的美元符号$有什么作用?
|
||||
|
||||
答案:其实美元符号$只是”jQuery”的别名,它是jQuery的选择器,如下代码:
|
||||
|
||||
Html代码
|
||||
|
||||
$(document).ready(function(){ });
|
||||
|
||||
当然你也可以用jQuery来代替$,如下代码:
|
||||
|
||||
Html代码
|
||||
|
||||
jQuery(document).ready(function(){});
|
||||
|
||||
jQuery中就是通过这个美元符号来实现各种灵活的DOM元素选择的,例如$(“#main”)即选中id为main的元素。
|
||||
|
||||
|
||||
|
||||
11. window.onload()函数和jQuery中的document.ready()有什么区别?
|
||||
|
||||
答案:1.执行时间
|
||||
|
||||
window.onload必须等到页面内包括图片的所有元素加载完毕后才能执行。
|
||||
|
||||
$(document).ready()是DOM结构绘制完毕后就执行,不必等到加载完毕。
|
||||
|
||||
$(document).ready()在 window.onload之前执行
|
||||
|
||||
2.编写个数不同
|
||||
|
||||
window.onload不能同时编写多个,如果有多个window.onload方法,只会执行一个
|
||||
|
||||
$(document).ready()可以同时编写多个,并且都可以得到执行
|
||||
|
||||
3.简化写法
|
||||
|
||||
window.onload没有简化写法
|
||||
|
||||
$(document).ready(function(){})可以简写成$(function(){});
|
||||
|
||||
4.浏览器兼容性
|
||||
|
||||
$(document).ready()可以跨浏览器,例如在使用ajax请求的时候自动会处理兼容
|
||||
|
||||
5.出现地方不同
|
||||
|
||||
window.onload是js标准,可出现在任何js脚本中
|
||||
|
||||
$(document).ready只有在jq库中出现
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
12. 编写一段代码请使用jQuery将页面上的所有元素边框设置为2px宽的虚线?
|
||||
答案:<script language="javascript" type="text/javascript">
|
||||
|
||||
$("*").css("border", "2px dotted red");
|
||||
|
||||
</script>
|
||||
@@ -46,7 +46,7 @@ B.他父级
|
||||
C. Object
|
||||
D.window
|
||||
|
||||
5. 下面代码中,严格模式下的 this的值为
|
||||
1. 下面代码中,this的值为
|
||||
|
||||
```
|
||||
"use strict";
|
||||
BIN
考试/原题/vue/dom.docx
Normal file
BIN
考试/原题/vue/dom.docx
Normal file
Binary file not shown.
BIN
考试/原题/vue/dom扩展.docx
Normal file
BIN
考试/原题/vue/dom扩展.docx
Normal file
Binary file not shown.
BIN
考试/原题/vue/jquery.docx
Normal file
BIN
考试/原题/vue/jquery.docx
Normal file
Binary file not shown.
BIN
考试/原题/vue/vue-router vuex.docx
Normal file
BIN
考试/原题/vue/vue-router vuex.docx
Normal file
Binary file not shown.
BIN
考试/原题/vue/vue.js.docx
Normal file
BIN
考试/原题/vue/vue.js.docx
Normal file
Binary file not shown.
BIN
考试/原题/vue/事件.docx
Normal file
BIN
考试/原题/vue/事件.docx
Normal file
Binary file not shown.
79
考试/原题/进度.txt
Normal file
79
考试/原题/进度.txt
Normal file
@@ -0,0 +1,79 @@
|
||||
jquery
|
||||
|
||||
ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
find eq
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>style class
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><EFBFBD>ɾ<EFBFBD><C9BE>
|
||||
|
||||
<EFBFBD>¼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> on
|
||||
|
||||
ajax
|
||||
|
||||
|
||||
vue
|
||||
|
||||
data
|
||||
|
||||
methods
|
||||
|
||||
computed
|
||||
|
||||
watch
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
router
|
||||
|
||||
mode
|
||||
|
||||
routers
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
Ƕ<EFBFBD><EFBFBD>·<EFBFBD><EFBFBD>
|
||||
|
||||
·<EFBFBD><EFBFBD>Ԫ<EFBFBD><EFBFBD>Ϣ
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
vuex
|
||||
|
||||
state
|
||||
|
||||
getters
|
||||
|
||||
mutations
|
||||
|
||||
actions
|
||||
|
||||
...map
|
||||
Mutations
|
||||
|
||||
|
||||
js <20><>ʣ<EFBFBD><CAA3>
|
||||
|
||||
dom
|
||||
<EFBFBD>¼<EFBFBD>
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
thisָ<EFBFBD><EFBFBD>
|
||||
|
||||
promise
|
||||
|
||||
let const
|
||||
set map
|
||||
|
||||
<EFBFBD>鼶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
model
|
||||
|
||||
async
|
||||
await
|
||||
Reference in New Issue
Block a user