JS都有哪些数据类型?
首先,JS 分为基本数据类型和引用数据类型。
基本数据类型: number , string , boolean , undefined , null ,symbol
引用数据类型: Object , Array , Function
null 和 undefined 的区别?
基本数据类型和引用数据类型在存储上有什么不同?什么是深浅拷贝?如何实现?
一文搞懂JS系列(二)之JS内存生命周期,栈内存与堆内存,深浅拷贝
JS 有哪些判断数组的方式?
Array.isArray()
javascript
let a = [1,2,3]
Array.isArray(a);//trueinstanceof
javascript
let a = [];
a instanceof Array; //trueconstructor
javascript
let a = [1,3,4];
a.constructor === Array;//trueObject.prototype.toString.call()
javascript
let a = [1,2,3]
Object.prototype.toString.call(a) === '[object Array]';//true它强大的地方在于不仅仅可以检验是否为数组,比如是否是一个函数,是否是数字等等。
javascript
//检验是否是函数
let a = function () {};
Object.prototype.toString.call(a) === '[object Function]';//true
//检验是否是数字
let b = 1;
Object.prototype.toString.call(a) === '[object Number]';//true如何实现数组去重?遇到深度对象如何处理?
javascript
let arr=[1,1,2,5,4,5,1,2,3];
let arr2=[...new Set(arr)];
console.log(arr2);javascript
let arr=[1,1,2,{a:'11'},5,4,5,1,2,3,{a:'11'}];
let arr2=[];
arr.forEach(item=>{
arr2.findIndex(x=>JSON.parse(JSON.stringify(x)===JSON.stringify(item)))>=0?'':arr2.push(item);
})
console.log(arr2);有一个数组 arr = [1,3,29,8,102,22,15] ,问 arr.sort() 的结果?如何从大到小排序?
[1, 102, 15, 22, 29, 3, 8]
javascript
arr.sort((a,b)=>b-a)编写一个查找数组中最长公共前缀的函数?
例如 str=['flower','flow','flight'] => 'fl'
例如 str=['tiger','dog','cat'] => ''
javascript
let arr=['flower','flow','flight'];
let res='';
for(let i=0;i<arr[0].length;i++){
let temp=arr[0][i];
if(arr.every(x=>x.charAt(i)===temp)){
res+=temp;
}else{
break;
}
}
console.log(res); // fl如何快速将数组转为对象?
javascript
let arr=['flower','flow','flight'];
let obj={...arr}
console.log(obj); // {0: 'flower', 1: 'flow', 2: 'flight'}
切克切克的个人博客