欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

前端面试笔记

程序员文章站 2022-03-04 12:17:09
...
第一章
  1. 关于JS里面的substr函数的参数是

    substr(beginIndex,length); //length是从开始后的多少长度

  2. JS中的typeof操作符中能反映除的数据类型有:number,string,object,boolean,undefined,function.

    e.g:

    typeof(null) => object

  3. 重点:关于声明变量有var和没var的区别:有var声明的是局部变量,而没有var声明的是全局变量

  4. js中定义参数不可以 以数字开头

    var 9name (×) 
    
  5. 检测数据类型(一般可以使用两种判断)

    if(typeof str == "string" || str.constructor == String)
    // 先以string类型举例
    
  6. JS中的数据类型:Undefined,Null,Number,Boolean,String


  7. document.write()和innerHTML的区别:

    区别为:document.write是直接写入到页面的内容流,写之前没有调用document.open,浏览器自动调用open,写完后会自动进行调用,导致页面被重写,但是 innerHTML只是DOM元素的一个属性,只会改变节点的那一块的内容,无需刷新页面。

  8. 单击一个按钮如何刷新整个页面?

    1.location.reload(true) //相当于点击F5进行刷新,会获取服务端最新页面
    2.location.replace(url)//进行刷新
    但是在实际应用中,通常使用history.go(0)和location.reload()进行刷新
    
  9. 关于元素(需要复习)

  10. 关键字与保留字的区别

    保留字已经是定义过的字,使用者不可以用这些当作变量名或者过程名;但是关键字在语言中有特定的意义,成为语法的一部分。

  11. 对于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;
	}

这里的话就是和正常的基本去重的暴力法

  1. 如何对对象的内容进行遍历呢(包括方法与属性)?
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)
	}
  1. JavaScript的内置对象有:Array,String,Math,Boolean,Number,Function,Global,Error,RegExp,Object
  2. 原型与原型链:原型与原型链接