ECMAScript6(1):块级作用域,微信小程序前端开发
四轮技术面+一轮hr面结束,学习到了不少,面试也是一个学习检测自己的过程,面试前大概复习了 一周的时间,把以前的代码看了一下,字节跳动比较注重算法,面试前刷了下leetcode和剑指offer, 也刷了些在牛客网上的面经。大概就说这些了,写代码去了~祝大家都能收获大厂offer~开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】篇幅有限,仅展示部分内容。
- let 和 const 声明的变量没有声明提前, 所以在作用域内存在暂时性死区
var temp = 20;
(function area(){
console.log(temp); //undefined
var temp = 30; //声明提前
}());
if(true){
console.log(temp); //ReferenceError 但是 babel 会得到 undefined
let temp = 20;
}
//一个隐蔽的死区
function bar(x = y, y = 2){
console.log(x, y);
}
bar(); //报错, 因为定义 x 的时候, y 还没有定义 (babel 中不报错,得到 undefined 2)
function par(x = 2, y = x){
console.log(x, y);
}
par(); //22
- let 和 const 声明变量在当前作用域(不包括作用域链)上不能重复。const声明的变量必须初始化, 且不能修改:
let a = 10;
var b = 20;
const c = 30;
let a = 4; //报错
const b = 3; //报错
c = 20; //报错, c是只读的
- 不可以连续定义变量
let a=b=3; //报错 b 未定义
const c=d=2; //报错 d 未定义
- 技巧:ES6 中, 在块作用于外调用内部函数
var f;
{
f = function(){
console.log(“inside”);
}
}
f();
- const 声明的基本变量不可改变, 但复杂变量可以改变其内容
const 这个特性和底层的 c++ 一致, 在 c++ 中 const 相当于常指针 int * const p
, 也就是其指向的数据所在内存区域可读可写, 但是指针的值初始后就不能改。
const a = 10;
const b = {
num: 20
};
b.num = 30;
console.log(b.num); //30
a = 20; //TypeError
b = {
num: 90
}; //TypeError
如果想让非基本变量内部也不可改变, 需要使用 Object.freeze()
方法。可以参考:javascript对象、类与原型链
- 跨模块常量
对于跨模块的常量, 可以这样写:
小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:前端)
最后
四轮技术面+一轮hr面结束,学习到了不少,面试也是一个学习检测自己的过程,面试前大概复习了 一周的时间,把以前的代码看了一下,字节跳动比较注重算法,面试前刷了下leetcode和剑指offer, 也刷了些在牛客网上的面经。大概就说这些了,写代码去了~
祝大家都能收获大厂offer~
篇幅有限,仅展示部分内容
e0dc8a77e76478.png)
更多推荐
所有评论(0)