发表于: 2019-07-01 14:41:50

2 694


今日完成:  将css任务十一提交

                  

今日收获:1 变量提升

今天在实现console.log时,发现我分明已经声明了变量,为什么输出的时候还是显示undefined,后来在查找资料时,

发现原来有变量提升则会个概念;

变量提升

JavaScript 引擎的工作方式是,先解析代码,获取所有被声明的变量,然后再一行一行地运行。这造成的结果,就是所有的变量的声明语句,都会被提升到代码的头部,这就叫做变量提升(hoisting)。

console.log(a);var a = 1;

上面代码首先使用console.log方法,在控制台(console)显示变量a的值。这时变量a还没有声明和赋值,所以这是一种错误的做法,但是实际上不会报错。因为存在变量提升,真正运行的是下面的代码。

var a;console.log(a);
a = 1;

最后的结果是显示undefined,表示变量a已声明,但还未赋值。

2  关于数值进制的表示方法:

使用字面量(literal)直接表示一个数值时,JavaScript 对整数提供四种进制的表示方法:十进制、十六进制、八进制、二进制。

  • 十进制:没有前导0的数值。
  • 八进制:有前缀0o0O的数值,或者有前导0、且只用到0-7的八个阿拉伯数字的数值。
  • 十六进制:有前缀0x0X的数值。
  • 二进制:有前缀0b0B的数值。

默认情况下,JavaScript 内部会自动将八进制、十六进制、二进制转为十进制。下面是一些例子。

0xff // 2550o377 // 2550b11 // 3

3 关于10,8,16进制的计算方法:

把十进制转八进制或者十六进制按照除8或者16取余,直到商为0为止。

(具体用法如下图)

  1. 八进制或者十六进制转成十进制方法为:把八进制、十六进制数按权展开、相加即得十进制数。

  2. (具体用法如下图)

参考文档:

https://jingyan.baidu.com/article/495ba84109665338b30ede98.html

今日疑惑:

在js任务一中,为了防止重复点击事件的发生,设置了一个条件语句,但是这个条件语句就只进行了一次


明日计划:将任务十二提交




返回列表 返回列表
评论

    分享到