1.javaScript有哪几种数据类型
5种基础数据类型 Number String Array Boolean Undefined
1种复杂类型 Object
2.JavaScript中哪些为真?哪些为假?
为假的值
'' 0 -0 false undefind null NaN
其他的所有值都是真
3.计算以下运行结果
1) alert(0/0); -->NaN
//拓展 NaN != NaN //-->true infinity/infinity //-->NaN infinity-infinity //-->NaN
2) alert(1/0) ---->Infinity
3) var arr =[1,'abc',function(){alert(3333);}];
alert(arr[2]()) --->3333 undefined
arr[2](); ---->3333
4) var len = 4;
while(len--) //这里len判断之后再 --
{
setTimerout(function(){console.log(len),3000); -----> -1,-1,-1,-1
console.log(len); ----->3,2,1,0
}
5) window.name = 'Window';
var cat = {
name:'Cat'
};
var dog = {
name = 'Dog',
sound:function(word){
alert(this.name+word);
}
};
dog.sound('is pooping'); --->'Dogis pooping'
dog.sond.call(window,'is banking'); --->'windowis banking'
dog.sound.call(dog,'is banking'); ---->'Dogis banking'
dog.sound.apply(cat,['miaowing']); ---->'Catis miaowing'
4.请写出以下正则表达式的详细规则说明
1) /^(0[1-9]dd?)?[1-9]d(6)d?$/
这个正则表达式是 匹配
以 0 + 1-9的数字 + 一到两个数字为开头 再加 1-9的数字 + 一个数字再+ 6 再加一个或者不加数字为结尾
或者
以 1-9的数字为开头 + 一个数字再+ 6 再加一个或者不加数字为结尾
2)/^1[89]|[2-9]d|100&/i
这个正则表达式可以匹配三种情况 不区分大小写
一种是 18/19
另一种 2-9的数字 + 上任意一位数字
或者 100
3) /^w-/+@[a-z0-9-]+([[a-z]{2-6})(1,2)$/i
这个正则表达式匹配的是
不区分大小写 以 一个或者多个 字母 或者 - 开头 再加上 @ 再加上 一个或多个 a-z 0-9
在接上 2-6个 a-z 或 [ 一次或者两次
5.请写出打乱数组的方法
方法1
var arr = [1,2,3,4,5,6,7,8,9]; function arrBreak (arr) { arr.sort(()=>{ var flag = Math.ceil(Math.random() - 0.5); console.log(flag); return flag; }) } console.log(arr);
方法2
function arrBreak(arr){ [len] = [arr.length]; while(len--){ j = Math.floor(Math.random()*len); [arr[len],arr[j]] = [arr[j],arr[len]] } } arrBreak(arr)
6.写出document.getElementsByClassName的实现方法
其实不太懂 实现方法是什么意思 试问怎么用???
根据dom元素的class值 获取与 方法匹配class 的dom 生成一个dom数组,
要用的时候 用 [] 读取数组中的dom即可
7.下列哪个不属于 js 保留字? ( B )
A.with
B.parent
C.class
D.void 空的 无效的
8.jquery中如何选择一个元素的所有兄弟节点
.sublings()
9.以下那条语句会产生运行错误? ( A)
A.var obj = (); B.var obj = []; C.var obj = {}; D.var obj = //;
10.请选择对javascript理解有误的? (B)
A.Jscript是javascript的简称
B.javascript 是网景公司开发的一种java脚本语言,其目的是为了简化java开发的难度
C.FireFox和IE存在大量兼容问题是因为他们对javaScript的支持程度不同
D.ajax技术一定要使用javaScript技术
java 当时是sun公司的 现在是 oracle的
javaScript是网景公司,的工程师 布兰德·奇 开发的,当时开发的要求是
开发一个与java相似但要比java简单的语言
1.删除所有相关浏览器的内容,2.对象与平台无关,3.全面支持unicode编码
原本开发出来叫做 liveScript 后来由于经济原因 为了宣传 与 sun公司合作 使用 javaScript这个名字为了宣传
11.解释div元素和span元素的区别
div 是块级元素 独占一行 可以设置宽高等属性
span 是行内元素 不独占一行 不可设置宽高,margin-top/margin-bootom等属性
12.alert中如何换行?
在aler中使用js特殊字符 或者
alert('firstLine secondLine');
13.以下关于Array数组对象说法不正确的是 (C B )
A.对数组中数据排序可以使用sort函数,如果排序效果非预期,可以给sor函数加一个排序函数的参数
B.reverse用于对数组数据的倒序排列
C.想数组的最后位置加一个新元素可以用 pop方法 //push是加 pop是删除
D.unshift方法用于向数组删除第一个元素 //应该是添加
14.push(),pop(),shift(),unshift()分别是什么功能?
push() 尾部加一位 可以传多位 作为多位的值 返回值是长度
pop() 尾部删除一位 不支持传参
shift() 头部删除一位 不支持传参
unshift() 头部添加一位 可以传多位 作为多位的值 返回值是长度
15.如何阻止事件的冒泡
粗暴的方法 return false;
标准方法 event.stopPropagation();