当前JavaScript标准版本最新的是 ES6
以下关于JavaScript在Web前端的用途:
错误的是:可以读写当前计算机本地的文件。
属于JavaScript特点的是:
不属于JavaScript特点的是:编译型
指定JavaScript语言标准的组织是 ECMA
JavaScript在诞生之初的名称为 LiveScript
在HTML中使用JavaScript的做法正确的是:
D. 当使用< script src=“url”>< /script>引入外部.js文件时,不能在其中再加入JavaScript代码。
应该在下方再写< script>标签加入JavaScript代码。
错误的是:
和
标签之间。
, 或
中。关于JavaScript语法说法正确的是:
C. JavaScript中//表示单行注释,/*… */表示多行注释
错误的是:
声明变量语句中,正确的是:
B. var my_home
错误的是:
另外:
严格区分大小写。
建议遵守的,约定俗成的,推荐使用小驼峰命名法, 除第一个单词意外 其他单词首字符大写 username — userName userpwd — userPwd
JavaScript中变量名的只能包含字母(区分大小写)、数字、下划线_、美元符$。
变量声明后未赋值,该变量的类型为 undefined
JavaScript中,变量的作用域分为全局变量和局部变量
在全局环境下用var声明的变量,JS引擎将其绑定在 window/全局 对象之上,作为其属性。
执行以下语句后,执行结果是:
var iNum = 10;
iNum += 10; //20
var inum2 = ++iNum; //21
alert(inum2); //21
以下表达式的结果为NaN的是:
C. “十八”*“十九” NaN是JS中的Number类型,它表示Not A Number(不是数字)任何值和NaN比较都不相等。非数字、非数值
以下将数值转换为字符串的做法错误的是?D
表达式parseFloat(“12.3.4b“)的结果是: 12.3
parseFloat 会忽略字符串前面的空格,从第一个字符开始解析直到遇见一个无效的浮点数字字符为止(也就是字符串中第一个小数点是有效的而字符串中的第二个小数点是无效的)
表达式Number(“12.6b”)执行结果正确的是: NaN
Number():
1)如果是Boolean值,true和false将分别转换为1和0。
2)如果是数字值,只是简单的传入和返回。
3)如果是null值,返回0。
4)如果是undefined,返回NaN。
5)如果是字符串,遵循下列规则:
如果是字符串中只包含数字(包括前面带正号或负号的情况),则将其转换为十进制数值,即“1”变成1,“123”会变成123,而“011”会变成11(前导的零被忽略了);
如果字符串中包含有效的浮点格式,如“1.1”,则将其转换为对应的浮点数值(同样也会忽略前导零);
如果字符串中包含有效的十六进制格式,例如"0xf",则将其他转换为相同大小的十进制整数值;
如果字符串是空的(不包含任何字符),则将其转换为0;
如果字符串中包含除上述格式之外的字符,则将其他转换成NaN.
6)如果是对象,则调用对象的valueOf()方法,然后依照前面的规则转换返回的值。如果转换的结果是NaN,则调用的对象的toString()方法,然后再次依照前面的规则转换返回的字符串值。
JavaScript函数中,= 符号表示赋值,== 符号表示值相等 , === 符号表示数据类型和值都相等(恒等)。
JavaScript中,变量的作用域分为 全局变量 和 局部变量 。
funciton fun(a=0, b=0){
return a+b;
}
console.log(fun()); //输出为0
console.log(fun(12); //输出为12
console.log(fun(undefined, 14); //输出为14
console.log(fun); //输出为 Undefined
var fun=function(a, b){
return a*b;
};
console.log(fun(10, 10)); //输出为 100
var fun1 = fun;
console.log(fun1( 12, 10)); //输出为120
JavaScript中,弹出消息对话框的函数是alert( ),弹出确认对话框的函数是confirm( )。
JavaScript弹出对话框的三种方式:
alert()警告框(确定)
alert()方法是显示一条弹出提示消息和确认按钮的警告框。
需要注意的是 :
alert()是一个阻塞的函数,如果不点确认按钮,后面的内容就不会加载出来。
使用方式:
alert(“想要提示的文本内容”)
confirm()弹出个确认框 (确定,取消)
confirm()方法是显示一个含有指定消息和确认和取消按钮的确认框。
如果点击"确定"返回true,否则返回false。
使用方式:
(1)不接收返回值:
confirm(“这样写可以直接显示,不接收返回值。”)
(2)接收返回值:
var x;
var r=confirm(“请按下按钮!”);
if (r==true){
x=“你按下的是"确定"按钮。”;
}
else{
x=“你按下的是"取消"按钮。”;
}
document.write(x)
prompt()提示框(弹出个输入框 让你输入东西)
prompt()方法是显示提示用户进行输入的对话框。
这个方法返回的是用户输入的字符串。
使用方式:
(1)不显示默认文本:
prompt(“开心吗?”); // 这个显示内容也可以不写,但就没有交互的意义了。
(2)显示默认文本:
var x;
var name=prompt(“请输入你的名字”,“Keafmd”);
if (name!=null && name!=“”){
x="你好! " + name + “。”;
document.write(x)
}
function fun1(a, b, callback){
if(typeof(a) == “number” && typeof(b) == “number”){
callback(a, b);
}else{
console.log(“Not a Number”);
}
}
fun1(10, 20, function(x, y){
console.log(x > y? x : y);
}); //输出为20
fun1(“10”, “20”, function(x, y){
console.log(x + y);
}); //输出为Not a Number
根据以下person对象为模板定义构造函数Person,并为每句代码加上注释,说明该句代码的作用或原理。将代码截图,以贴图的方式提交(非附件)。
要求:
var arr = [ 10, 20, 9, 30, 4 ];
var r = arr.reduce(function( a, b ){
return a - b;
});
console.log( r );//10-20-9-30-4 = -53
以下数组的迭代方法中,用于筛选数组元素的是 filter( )
filter用于对数组进行过滤。
filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
A. map( )
B. forEach( )
D. some( )
some() 方法用于检测数组中的元素是否满足指定条件(函数提供)。
some() 方法会依次执行数组的每个元素:
如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。
如果没有满足条件的元素,则返回false。
注意: some() 不会对空数组进行检测。
注意: some() 不会改变原始数组。
可以返回一个新的数组对象的数组方法:
C. splice( )
splice(index) ——> 从index的位置开始,删除之后的所有元素(包括第index个)
若 index < 0 , 则删除最后-index个元素
splice()函数返回删除元素数组
eg1:
原数组为: 0,1,2,3,4,5,6
array.splice(2)的结果为: 0,1
eg2:
原数组为: 0,1,2,3,4,5,6
array.splice(-3)的结果为: 0,1,2,3
删除的内容为: 4,5,6
splice(index,howmany) ——> 删除从index位置开始的数,howmany为删除的个数
若 howmany 小于等于 0,则不删除
eg:
原数组为: 0,1,2,3,4,5,6
array.splice(2,1)的结果为: 0,1,3,4,5,6 .
删除的内容为: 2
splice(index ,howmany , item1, …, itemX )
index >0 时
(1. howmany 为 0 时 不删除只添加 —— 在index位置前添加item1, …, itemX的数
(2. howmany > 0 删除且添加 —— 在index位置前添加item1, …, itemX的数,并且删除从index位置开始的数,howmany为删除的个数
index <0 时 最后一个数为 -1 依次倒数第二个数为-2
(1. howmany 为 0 时 不删除只添加 —— 在-index位置前添加item1, …, itemX的数
(2. howmany > 0 删除且添加 —— 在-index位置前添加item1, …, itemX的数,并且删除从-index位置开始的数,howmany为删除的个数
eg1:
原数组为: 0,1,2,3,4,5,6
array.splice(2,0,8,9)的结果为: 0,1,8,9,2,3,4,5,6
删除的内容为:
eg2:
原数组为: 0,1,2,3,4,5,6
array.splice(-2,3,8,9)的结果为: 0,1,2,3,4,8,9
删除的内容为: 5,6
D. concat( )
concat()方法是用于连接两个或多个数组。不会改变现有数组
eg:
var Array= [“hello”, “word”];
var ArrayItem= [“java”, “C++”, “C#”];
var ArrayData= [“name”];
var children = Array.concat(ArrayItem,ArrayData);
输出的结果为:
hello,word,java,C++,C#,name
E. slice( )
不可以的是:
会修改原数组的数组对象的方法:
A. push( )
C. shift( )
E. sort( )
对数组进行排序,并返回原数组。
不传比较函数时,数字也是按照它们的字符串形式的升序排序的
eg:
var arr = [12, 1, 2, 21, 3];
arr.sort(); //得到的结果为 1,12,2,21,3
传入比较函数对数值进行排序,仅当比较函数返回正值时,交换两个比较值的顺序(排序原理)。
eg1:升序
var points = [40, 100, 1, 5, 25, 10];
points.sort(function(a, b){return a-b}); //[1,5,10,25,40,100]
eg2:降序
var points = [40, 100, 1, 5, 25, 10];
points.sort(function(a, b){return b-a}); //[100,40,25,10,5,1]
不会修改的是:
var arr = [ “tom”, “jerry”, 10, {k:“remove”, v:true}, 20 ];
var a = arr.map( function( i ){
if( typeof( i ) == “number”){
return i ; //10,20
}});
console.log(a[0]);//undefined
console.log(a[2]);//10
var b = arr.filter(function( i ){
return typeof(i) == “string” && i.includes(“m”) ;
});
console.log( b );//[“tom”]
var c = arr.every(function( i ){
return i.toString;
});
console.log( c );//true
以下获取元素element的相邻节点,说法错误是( C )。
以下选择器中,哪一个可以通过document.querySelector( selector )方法获取页面中id为list的< ul>中的最后一个class属性为selected的< li>?( D )
querySelector()方法可以不需要额外的jQuery等支持,也可以方便的获取DOM元素,语法跟jQuery类似。
querySelector() 方法仅仅返回匹配指定选择器的第一个元素。如果你需要返回所有的元素,请使用 querySelectorAll() 方法替代。
DOM API中可以获取单个元素对象的方法是( A )。
浏览器按照DOM标准,将页面解析为DOM对象,该对象是一种(树)结构。
以下操作元素element样式的DOM API中正确的是(C)。
HTML片段:
<ul id="lst">
<li>语文li>
<li>数学li>
<li>英语li>
ul>
JavaScript代码:
var list = document.querySelector("#lst");
var items = list.children;
console.log(items.length); // 输出为 3
list.appendChild(document.createElement("li"));//appendChild 在子节点末尾增添新节点
list.lastElementChild.textContent="物理”;//给最后一个子节点赋值为 物理
console.log(list.lastchild.innerText); // 输出为( 物理 )
var e1 = document.createElement("li");
e1.innerText="化学";//赋值为 化学
list.insertBefore(e1, items[2]); //语文、数学、化学、英语、物理
console.log(items[2].textContent); // 输出为( 化学 )
list.appendChild(e1);//语文、数学、英语、物理、化学
console.log(items[2].textContent); //输出为( 英语 )
list.removeChild(e1);//移除el 语文、数学、英语、物理
console.log(items[2].nextElementSibling.textContent); // 输出为( 物理 )
appendChild() 方法可向节点的子节点列表的末尾添加新的子节点。
insertBefore() 方法可在已有的子节点前插入一个新的子节点。
语法:
insertBefore(newnode,node);
参数:
newnode: 要插入的新节点。
node: 指定此节点前插入节点。
在HTML标签中,部分标签的事件具有默认行为,如a标签的点击事件。以下哪些方法可以阻止这些标签事件的默认行为。
ACD
A. 将事件对象的returnValue设置为false
B. 将事件对象的returnValue设置为true
C. 如果事件采用DOM level 0级的绑定,可以在事件处理函数结束时返回false。
D. 调用事件对象的preventDefault( )方法。
preventDefault它是事件对象(Event)的一个方法,作用是取消一个目标元素的默认行为。
既然是说默认行为,当然是元素必须有默认行为才能被取消,如果元素本身就没有默认行为,调用当然就无效了。
E. 调用事件对象的stopPropagation( )方法。
JavaScript中事件处理的核心要素:事件类型、事件目标、事件处理程序
JavaScript中事件绑定的方式有哪些 ? BCD
A. 通过元素对象的on( ‘eventName’, function(){ })方法
B. 通过元素对象的addEventListener( ‘eventName’, function(){ })方法
绑定事件监听函数:
绑定事件的另一种方法是用 addEventListener() 或 attachEvent() 来绑定事件监听函数。
C. 通过为元素对象的事件属性赋值函数,如elem.οnclick=function(){ }
D. 通过对HTML标签的onXXXX事件属性赋值JavaScript代码,如< a οnclick=“alert(‘hi’);”>xxx< /a>
E. 通过元素对象的事件函数传递事件处理函数,如elem.click(function( ){ })。
通过当前事件对象的( type )属性可以获取当前事件的类型,( target )属性可以获取触发当前事件的对象。
事件传播分为( 事件捕获 )和( 事件冒泡 )。
以下if语句结果错误的是(A)。
A. if(condition) else{ statements }
B.
if( condition ) {
if(condition){ statements }
statements
} else { statements }
C. if(condition) { statements } else if(condition) { statements }
D. if(condition){ statements }
对于如下语句 if(name){
console.log(‘如果条件为真,这条语句得到执行!’);
}
当变量name分别为布尔型、数字型和字符串型时,分别满足什么条件才能进入if语句,从而在控制台输出结果:
以下for语句:for(var i=0, j=10; i!=j; i++, j–)的循环次数为( 5 )。
以下switch语句中不合理的是( )。
A.
switch(x){
case 1:
case 2:
statements;
break;
default:
statements;
break;
}
B.
switch(x){
default:
statements;
break;
case 1:
case 2:
statements;
}
C.
switch(x){
default:
statements;
case 1:
case 2:
statements;
break;
}
D.
switch(x){
case 1:
case 2:
statements;
break;
default:
statements;
}
语法:switch(变量) {
case 常量值1:
语句体1;
break;
case 常量值2:
语句体2;
break;
…
default:
语句体n+1;
break;
}
switch 语句必须遵循下面的规则:
switch 语句中的表达式是一个常量表达式,必须是一个整型或枚举类型
一个 switch 中可以有任意数量的 case 语句。每个 case 后跟一个要比较的值和一个冒号
当表达式的值等于 case 后的常量时,case 后跟的语句将被执行,直到遇到 break 语句为止
case 后必须是一个常量或字面量,必须与 switch 中的表达式具有相同的数据类型
一个 switch 语句可以有一个可选的 default,用于在上面所有 case 都不为真时执行
break可以省略,如果 case 语句不包含 break,控制流将会 继续 后续的 case,直到遇到 break 为止
以下不能直接使用break进行中断的代码结构是( A )。
循环语句:var i; while( i=0 ) i–; while的循环次数为( 0 )。
var i = 10;
for(var r =0; i>0 ; i -=2){
r += i;
}
console.log®; //输出为( 10+8+6+4+2 = 30 )
var x;
do{
x=x||1;
x*=2;
console.log(x);
}while(x<10); //1*2 * 2 * 2 * 2 = 16
以上代码的循环次数为( 4 )。
第一次输出为( 2 )。
最后次一次输出为( 16 )。
var s = “abc123ef34”;var r = s.split(“3”);r为( [“abc12”, “ef”, “4”] )。
split() 方法用于把一个字符串分割成字符串数组。
stringObject.split(separator,howmany)
separator参数:必需填。字符串或正则表达式,从该参数指定的地方分割 stringObject。
howmany参数:可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。
var s1=“abc”, s2=“abc”;
var t1=new String(s1), t2=new String(s2);
请问:s1==s2和t1 ==t2的结果分别是 true,false
t1,t2分别是他们的对象
代码
var str=“this is a javascript book”;
var index=str.indexOf(“a”, 11);
index的值为:D
Java中字符串中子串的查找共有四种方法,如下:
1、int indexOf(String str) :返回第一次出现的指定子字符串在此字符串中的索引。
2、int indexOf(String str, int startIndex):从指定的索引处开始,返回第一次出现的指定子字符串在此字符串中的索引。
3、int lastIndexOf(String str) :返回在此字符串中最右边出现的指定子字符串的索引。
4、int lastIndexOf(String str, int startIndex) :从指定的索引处开始向后搜索,返回在此字符串中最后一次出现的指定子字符串的索引。
var str=“abc123xy12z”;
str.substring(2,4)的值( “c1” ),
str.substring(A, B) 截取字符串,左闭右开
str.substring(A) A往后所有的字符
str.lastIndexOf(2)的值为( 9 ),
str.substr(2,4)的值为( “c123” ),
js里的substr()方法是用来截取字符串的
语法:
stringObject.substr(start,length);
其中 start是要截取字符串的开始下标,length是要截取的长度。
str.split(“12”)[1]的值为( [“abc”,”3xy”,”z”] 取[1] = “3xy”),
str.slice(-5, -2)的值为( xy1 )
字符串对象方法中,可以用来判断当前字符串中是否存在指定的子字符串的有:
var arr=[2,3,4,5,6];
for(var i=0;i
arr[i]*=10;
}//20,3,40,5,60
console.log(arr[1]); //输出为( 3 )
console.log(arr[2]); //输出为( 40 )
arr[arr.length]=10;
console.log(arr[arr.length]); // 输出为( Undefined )
console.log(arr[arr.length-1]); //输出为( 10 )
var data=[ “tom”, “jack”, “ketty”];
for(var d of data){
if(d.length<4){
d=d.toUpperCase();
}
}
console.log(data[0]); //输出为( “tom” )
console.log(data[1]); //输出为( “jack” )
for(var d in data){
if(d%2==1){
data[d]=data[d][0].toUpperCase()+data[d].substr(1);
}
}
console.log(data[1]); //输出为( “Jack” )
console.log(data[2]); //输出为( “ketty” )
以下哪些表达式可以创建一个具有6个元素的数组? ACD
几种逗号数组创建方式:
第一种
var arr = [ , , , ]; //创建包含三个空位的数组
console.log(arr.length); // => 3
console.log(arr); // => [ < 3 empty items> ]
第二种
var arr = [2 , , , 6]; //创建包含四个空位的数组
console.log(arr.length); // => 4
console.log(arr); // => [ 2, <2 empty items>, 6 ]
第三种
var arr = [2 , , , ]; //创建包含三个空位的数组
console.log(arr.length); // => 3
console.log(arr); // => [ 2, <2 empty items> ]
第四种
var arr = [ , , 1 , ]; //创建包含四个空位的数组
console.log(arr.length); // => 3
console.log(arr); // => [ <2 empty items>, 1 ]
第五种
var arr = [ , , , 3 ]; //创建包含四个空位的数组
console.log(arr.length); // => 4
console.log(arr); // => [ < 3 empty items>, 3 ]
得到这样结果的原因是从ES5规范开始就允许在列表(数组值,属性列表)末尾多加一个逗号(在实际处理中会被忽略不计)