1 Star 0 Fork 0

宋玉洁/syj

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
2.js经典面试题.html 3.45 KB
一键复制 编辑 原始数据 按行查看 历史
宋玉洁 提交于 2022-02-07 21:01 . '小米'
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
//1.1 输出结果,并写出为什么 ?
// for (var i = 0; i <= 5; i++) {
// setTimeout(() => {
// console.log(i);
// }, i * 1000)
// }
// console.log(i);
//先输出6,然后间隔1秒钟输出6个6
//1.2 以上代码如果想输出6,0,1,2,3,4,5,怎么实现?
// for (var i = 0; i <= 5; i++) {
// (i => {
// setTimeout(() => {
// console.log(i);
// }, i * 1000)
// })(i)
// }
// console.log(i);
// 因为for循环是同步,定时器是异步,所以输出6个0 通过自己执行函数可实现((参数=>{}))接受外部参数
//2.输出结果,并写出为什么 ?
// var obj1 = {
// a: 1,
// b: 2,
// c: 3,
// d: {
// e: 4
// }
// }
// var obj2=obj1 //浅拷贝 {a: 2, b: 2, c: 3, d: {e:5}}
// var obj2=JSON.parse(JSON.stringify(obj1)) //深拷贝 {a: 1, b: 2, c: 3, d: {e:4}}
// var obj2 = {...obj1
// }
// obj1.a = 2
// obj1.d.e = 5
// console.log(obj2);
// 结果是{a: 1, b: 2, c: 3, d: {e:5}}
// a是深拷贝 对于二级以上的数据类型直接赋值的话就是浅拷贝 浅拷贝会随着数据的变化而变化
// 相要不变化的话需要深拷贝 深拷贝最简单的方法就是JSON.parse{JSON.stringfy(obj)}
// object.assign()用于简单的浅拷贝 如果遇到引用数据类型 就拷贝不了
//3.输出结果说出,并写出为什么 ?
setTimeout(() => {
console.log(1);
}, 0)
new Promise((resolve, reject) => {
console.log(2); //这里是同步
resolve()
}).then(() => {
console.log(4);
})
console.log('这里是同步');
//4.数组去重,写出至少2种方法
// let arr = [12, 24, 37, 37, 24, 49, 49, 55, 55]
// // 第一种
// let one = [];
// for (var i = 0; i <= arr.length - 1; i++) {
// if (one.indexOf(arr[i]) == -1) {
// one.push(arr[i])
// }
// }
// console.log(one);
// // 第二种
// let newarr = new Set(arr);
// console.log(newarr);
// console.log(Array.from(newarr));
// 5. 写出至少3种深拷贝方法
//1.利用JSON.parse()和JSON.stringify()
// let obj = {
// a: "1",
// b: "2",
// c: "3",
// d: "4"
// };
// let obj1 = JSON.parse(JSON.stringify(obj));
// console.log(obj);
// console.log(obj1);
// 2.利用concart()
// let arr1 = ['hello', 'world']
// let arr2 = arr1.concat()
// console.log(arr1);
// console.log(arr2);
// 3.利用objct.assign()
// let obj1 = {
// name: "fcc",
// age: "18"
// }
// let obj2 = Object.assign({}, obj1)
// obj2.name = 'llllc'
// console.log(obj1);
// console.log(obj2);
</script>
</body>
</html>
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/song-songyujie/syj.git
git@gitee.com:song-songyujie/syj.git
song-songyujie
syj
syj
master

搜索帮助