面试常问面试基础层知识汇总3

对闭包的理解

闭包是一种保护私有变量的机制,在函数执行时形成一个私有的作用域,保护函数里面的私有变量不受外界干扰,只管的说就是形成一个不销毁的栈环境

对小程序和普通APP内嵌H5的区别理解

小程序和APP中的H5本质上都是webview加载的,但小程序的执行js代码是通过基于微信客户端的底层代码实现的,而h5页面则是直接由浏览器执行解析的js文件,所以小程序中data不适合储存太多数据,当数据变化,底层js调用频繁会影响小程序性能,严重时会导致小程序崩溃

ES6的新特性

一 var /let/const的区别
使用函数内部使用var在执行函数的时候函数内的变量会提升到作用域的顶部,var 的变量为全局变量,而let和const声明的变量是块级变量,使用let和const声明的变量会进入暂时性死区,直到该变量的声明被处理,let声明的变量可重新复制,const声明的变量必须初始化赋值,且不可在同一作用域内再次声明,也不能再次赋值
二 模板字面量 倒引号 ``
倒引号模板字面量本质上是嵌入式表达式字符串的字面量
ES6之前使用+号连接字符串

例:
const name = '小明'
let message = name + ' please see '

现在使用倒引号模板

const name='xiao ming'
let message = `${
     
     name} please see`

${expression} 表示的占位符
三 解构
ES6可以使用解构从数组和对象中提取值并赋值给独特的变量

const point=[1,2,3];
const [a,b,c]=point;
console,log('a:'+a+' b:'+b+' c:'+c)
//输出a:1 b:2 c:3

在解构赋值中还可以忽略值 例:

const point=[1,2,3];
const [a,b]=point;
console,log('a:'+a+' b:'+b)
//输出a:1 b:2

在对象中结构赋值

const game={
    
    
	name:'zu qiou',
	type:'qiu',
	isLike:'yes'
}
const {
    
    name,type,isLike}= game
console.log(name,type,isLike)
//输出 : zu qiou,qiu,yes

四 对象字面量简写

let name='football'
let type='ball'
let isLike='yes'
const game={
    
    name,type,islike}
console.log(game)

五 展开运算符 …

//展开
const a=[1,2,3,4]
console.log(...a)
//合并数组
const a=[1,2,3]
const b=[4,5,6]
const c=[...a,...b]
console.log(c)
//输出:[1,2,3,4,5,6]

六 剩余参数
用途1
数组赋值时可将不定量的 剩余参数赋值给一个变量例

const color=['red','green','blue','yellow','black']
const [fcolor,scolor,tcolor,...itemcolor]=color

console.log(itemcolor)
//输出['yellow','black']

用途2
函数接收不定数量的参数例

function showColor(...color){
    
    
	let total = 0;  
 	for(const num of color) {
    
    
    	total += num;
 	}
  return total;
};

箭头函数的优势

1、减少代码量,简便简洁
2、解决了this的指向问题
普通函数指向的是定调用者,箭头函数则是指向的是定义函数的上一层对象。

数组常见的排序方法

1、sort方法排序
升序

var arr=[1,6,2,3,7,0]
arr.sort(a,b){
    
    
	return a-b;
}
console.log(arr)
//也可一行代码搞定
arr.sort()

降序

var arr=[1,6,2,3,7,0]
arr.sort(a,b){
    
    
	return b-a;
}
console.log(arr)

猜你喜欢

转载自blog.csdn.net/qq_40969782/article/details/115218159
今日推荐