为了账号安全,请及时绑定邮箱和手机立即绑定

JavaScript学习笔记007-js的执行

标签:
JavaScript

Author:Mr.柳上原

  • 付出不亚于任何的努力

  • 愿我们所有的努力,都不会被生活辜负

  • 不忘初心,方得始终

俗话说

读书百遍,其义自见

真的是有道理的

特别是像我这种初学前端的小白

以前从未接触过任何代码方面的知识

在学习html+css的时候,觉得还行,前端果然入门简单,后期也不算难

还一直在沾沾自喜

觉得自己是学习天才

当进入js学习阶段时

才发现自己有多么的天真

任何知识都不是简简单单就能学会

任何事也不是随随便便就能成功

当学到一个阶段,倒回去把以前的知识在看几遍

很多以前不懂的,突然就懂了

很多以前忘记了的,突然就想起了

很多以前没在意的,突然发现原来是讲过的

<!DOCTYPE html> <!-- 文档类型:标准html文档 --><html lang='en'> <!-- html根标签 翻译文字:英文 --><head> <!-- 网页头部 --><meta charset='UTF-8'/> <!-- 网页字符编码 --><meta name='Keywords' content='关键词1,关键词2'/><meta name='Description' content='网站说明'/><meta name='Author' content='作者'/><title>前端59期学员作业</title> <!-- 网页标题 --><link rel='stylesheet' type='text/css' href='css/css1.css'/> <!-- 外链样式表 --><style type='text/css'> /*内部样式表*/</style></head><body> <!-- 网页主干:可视化区域 --><script>// delete 删除var a = 1;
b = 2;delete a; // 不能删除delete b; // 可以删除// js解释器 (v8谷歌解释器)// 不同的浏览器的js解释器有可能不同// js第一阶段:编译期,对js代码进行静态分析,找到申明的变量 / 函数申明,检查语法是否符合规范// js第二阶段:执行期,运行js代码console.log(a);var a = 1;/* 
编译期:
var a; // a = undefined

执行期:
console.log(a);
a = 1; // var先用再定义,会默认在顶层作用域定义var a;
// a赋值是在执行期
*/let a = a; // 当a没有定义时,右边的a级之前的区域,为暂时性死区,TDZ,只存在于es6里function fn(a = a) { // 当函数的形参使用默认值时,小括号内是一个临时作用域,默认是let a = a;依然为暂时性死区,会报错alert (a);
}// 函数为js一等公民,当函数名与变量名重名时,函数会覆盖掉变量console.log(a);  // a = function a() {}var a = 1; // var可以重复申明,let不能重复声明function a() {};console.log(a); // a = 1/* 
编译期:
var a; // a = undefined
function a() {};

执行期:
console.log(a); // 第一个
a = 1;  // 重新赋值
console.log(a); // 第二个
*/function a() {var b = 1;console.log(b);
}function a() {var b = 2;console.log(b);
}console.log(a);
a();var a = 5;
a();/* 
编译期:
// 重名时,函数覆盖var变量
// 重名时,后面函数覆盖前面的
function a() {
var b = 1;
console.log(b);
}
function a() {
var b = 2;
console.log(b);
} // 最后只剩下这行重名函数
var a;

执行期:
console.log(a); // a打印执行的为第二个b = 2的最后剩下的重名函数
a();  // a函数执行的为b = 2的最后剩下的重名函数作用域被激活
// 激活函数后进入函数内部的编译期
编译期:
var b;
执行期:
b = 2;
console.log(b);
// 结果为2
a = 5;
a(); // 前面函数已经执行结束,只剩下前面的变量a,a不是函数时,加小括号直接报错
*/// 同级function内变量的调用:传参let a = 1;function fn(a) {console.log(a);  // a = 2}function fn2() {let a = 2;
fn(a);
}</script></body></html>



作者:Mr柳上原
链接:https://www.jianshu.com/p/39cf309c63df


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消