前端面试笔记
程序员文章站
2022-03-04 12:17:09
...
第一章
-
关于JS里面的substr函数的参数是
substr(beginIndex,length); //length是从开始后的多少长度
-
JS中的typeof操作符中能反映除的数据类型有:number,string,object,boolean,undefined,function.
e.g:
typeof(null) => object
-
重点:关于声明变量有var和没var的区别:有var声明的是局部变量,而没有var声明的是全局变量
-
js中定义参数不可以 以数字开头
var 9name (×)
-
检测数据类型(一般可以使用两种判断)
if(typeof str == "string" || str.constructor == String) // 先以string类型举例
-
JS中的数据类型:Undefined,Null,Number,Boolean,String
-
document.write()和innerHTML的区别:
区别为:document.write是直接写入到页面的内容流,写之前没有调用document.open,浏览器自动调用open,写完后会自动进行调用,导致页面被重写,但是 innerHTML只是DOM元素的一个属性,只会改变节点的那一块的内容,无需刷新页面。
-
单击一个按钮如何刷新整个页面?
1.location.reload(true) //相当于点击F5进行刷新,会获取服务端最新页面 2.location.replace(url)//进行刷新 但是在实际应用中,通常使用history.go(0)和location.reload()进行刷新
-
关于元素(需要复习)
-
关键字与保留字的区别
保留字已经是定义过的字,使用者不可以用这些当作变量名或者过程名;但是关键字在语言中有特定的意义,成为语法的一部分。
-
对于js中去重的最好的方法
function unique(arr){
return Array.from(new Set(arr))
}
通过Set容器不允许存在相同的元素的性质进行去重,就显得方便很多
当然了,也需要一个没有那么简单的方法进行实现
function difUnique(arr){
// 定义最终答案的数组
var result = new Array();
// 定义判断是否有重复数组的变量
var isRepeated;
for(var i = 0 ; i < arr.length ; i++){
// 在每一次小循环后都要将是否重复进行置零
isRepeated = false;
for(var j = 0 ; j <result.length ; j++){
// 这里设置的非常巧妙是因为第一次的循环是无法实现,因此i始 终比j大1,领先循环
if(arr[i] == result[j]){
isRepeated = true
break
}
}
if(!isRepeated){
result.push(arr[i])
}
}
return result;
}
这里的话就是和正常的基本去重的暴力法
- 如何对对象的内容进行遍历呢(包括方法与属性)?
function allProps(obj){
// 保存所有的属性名称和值
var props = ""
// 开始遍历
for(var p in obj){
// 如果对象存在方法
if(typeof(obj[p]) == "function"){
// 那么就直接调用对象里面的方法
obj[p]();
}else{
// 不是方法那就是属性,属性的话就直接进行拼接(每个属性接 一次)
props+=p+"="+obj[p]+"\n";
}
}
// 打印输出属性
alert(props)
}
- JavaScript的内置对象有:Array,String,Math,Boolean,Number,Function,Global,Error,RegExp,Object
- 原型与原型链:原型与原型链接
上一篇: Java se之动态代理
下一篇: 微信小程序分享时可自定义配图新功能