JavaScript学习笔记007-js的执行

Author:Mr.柳上原

  • 付出不亚于任何的努力
  • 愿我们所有的努力,都不会被生活辜负
  • 不忘初心,方得始终

俗话说

读书百遍,其义自见

真的是有道理的

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

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

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

还一直在沾沾自喜

觉得自己是学习天才

当进入js学习阶段时

才发现自己有多么的天真

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

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

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

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

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

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

<!DOCTYPE html> <!-- 文档类型:标准html文档 -->

<html lang='en'> <!-- html根标签 翻译文字:英文 -->

<head> <!-- 网页头部 -->

<meat charset='UTF-8'/> <!-- 网页字符编码 -->

<meat name='Keywords' content='关键词1,关键词2'/>

<meat name='Description' content='网站说明'/>

<meat 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>

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏章鱼的慢慢技术路

《算法图解》第六章笔记_广度优先搜索

17840
来自专栏沈唁志

如何提高PHP书写效率?提高PHP书写效率的几个示例

15640
来自专栏coding

2018年Go语言实战笔记1含着金钥匙出生的gogo环境搭建第一个go程序变量常量数据类型值类型与引用类型小结

由于出身名门,Go在诞生之初就吸引了大批开发者的关注。诞生十年以来,已经有很多基于Go的应用,一直有传言Go在将来是要取代现在Java的位置。对于一门只有十年历...

8510
来自专栏菜鸟前端工程师

JavaScript学习笔记004-if判断0for循环

12530
来自专栏写代码的海盗

分水岭 golang入坑系列

第三式开篇语有些负面, 所以这里就不贴了。有兴趣的自己可以去看看 https://andy-zhangtao.gitbooks.io/golang/conten...

39940
来自专栏青玉伏案

代码重构(一):函数重构规则

重构是项目做到一定程度后必然要做的事情。代码重构,可以改善既有的代码设计,增强既有工程的可扩充、可维护性。随着项目需求的不断迭代,需求的不断更新,我们在项目中所...

27250
来自专栏窗户

python和C语言混编的几种方式

  Python这些年风头一直很盛,占据了很多领域的位置,Web、大数据、人工智能、运维均有它的身影,甚至图形界面做的也很顺,乃至full-stack这个词语刚...

408100
来自专栏JavaQ

写这样的方法让人很反感

写作文要做到段落清晰、每段思路流畅、每段主旨明确,要有一条清晰的线穿插整篇内容,编写程序代码和写作文是一个套路。一个类就像一篇小作文,类的单一职责就是小作文要叙...

35370
来自专栏程序人生 阅读快乐

C Primer Plus(第6版)(中文版)

《C Primer Plus(第6版)中文版》详细讲解了C语言的基本概念和编程技巧。

13310
来自专栏高性能服务器开发

API设计原则 – QT官网的设计实践总结

原文链接:API Design Principles – Qt Wiki 链接:(http://wiki.qt.io/API_Design_Principles...

34620

扫码关注云+社区

领取腾讯云代金券