发表于: 2019-07-01 14:41:50
2 698
今日完成: 将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的数值。
- 八进制:有前缀
0o
或0O
的数值,或者有前导0、且只用到0-7的八个阿拉伯数字的数值。 - 十六进制:有前缀
0x
或0X
的数值。 - 二进制:有前缀
0b
或0B
的数值。
默认情况下,JavaScript 内部会自动将八进制、十六进制、二进制转为十进制。下面是一些例子。
0xff // 2550o377 // 2550b11 // 3
3 关于10,8,16进制的计算方法:
把十进制转八进制或者十六进制按照除8或者16取余,直到商为0为止。
(具体用法如下图)
八进制或者十六进制转成十进制方法为:把八进制、十六进制数按权展开、相加即得十进制数。
(具体用法如下图)
参考文档:
https://jingyan.baidu.com/article/495ba84109665338b30ede98.html
今日疑惑:
在js任务一中,为了防止重复点击事件的发生,设置了一个条件语句,但是这个条件语句就只进行了一次
明日计划:将任务十二提交
评论