每日3题(43)

2020/4/20

问题

HTML:viewport 所有属性 ?

CSS:单行居中显示文字,多行居左显示,最多两行超过用省略号结尾

JavaScript:a.x = a = {n:2}:一道被无数人无数次地解释过的经典面试题

HTML:viewport所有属性?

(1)width :设置layout viewport的宽度,为一个正整数,或字符串’device-width’;
(2)initial-scale:设置页面的初始缩放值,为一个数字,可以带小数。
(3)minimum-scale:允许用户的最小缩放值,为一个数字,可以带小数。
(4)maximum-scale:允许用户的最大缩放值,为一个数字,可以带小数。
(5)height:设置layout viewport的高度,这个属性对我们并不重要,很少使用
(6)user-scalable:是否允许用户进行缩放,值为‘no’或者‘yes’。
安卓中还支持:target-densitydpi,表示目标设备的密度等级,作用是决定css中的1px 代表多少物理像素
(7)target-densitydpi:值可以为一个数值或者 high-dpi 、 medium-dpi、 low-dpi、 device-dpi 这几个字符串中的一个

CSS:单行居中显示文字,多行居左显示,最多两行超过用省略号结尾

https://github.com/chokcoco/iCSS/issues/50

JavaScript:a.x = a = {n:2}:一道被无数人无数次地解释过的经典面试题

来自《JavaScript 权威指南》的解释

JavaScript 总是严格按照从左至右的顺序来计算表达式。

例如,在表达式w = x + y * z中,将首先计算子表达式 w,然后计算 x、y 和 z;然后,y 的值和 z 的值相乘,再加上 x 的值;最后将其赋值给表达式 w 所指代的变量或属性。

根据这道题还有极客时间评论区的内容,画的图,如有错误的地方,还请老哥们指正

在这里插入图片描述

从内容上其实已经说清楚了,不过在内容表达上还是会让人产生困惑,我觉得问题是出在“当前上下文中的那个变量a”和“原始的变量a”这样的表述方式上。或许如下表述在语意上会更加清晰:

1,这里其实只有一个变量,就是a,不存在那个变量a和这个变量a之分,有分别的其实是变量a的值,即“变量a过去的值”和“变量a现在的值”。

2,当发生第一次赋值时,“左操作数a作为一个引用被覆盖”,此时变量a产生了新的值。

3,第二次赋值时,“整个语句行的最左侧‘空悬’了一个已经求值过的‘a.x’”,这是一个表达式结果,这个结果以及其中保留的“a”(即“变量a过去的值”)与变量a已经没有关系了,因为变量a已经有了新的值,即“变量a现在的值”。

4,第二次赋值其实是,在“变量a过去的值”那个对象上,创建一个新属性x,x的值为变量a的值,第二次赋值已经是没有意义了,因为a.x已经被抛弃了,在现有的a上找不到a.x来进行赋值了”。

【原解释在极客时间周爱民老师的JavaScript的核心原理分析】

自我理解和珠峰培训周啸天老师的堆栈理解方法大同小异

发布了49 篇原创文章 · 获赞 1 · 访问量 1067

猜你喜欢

转载自blog.csdn.net/weixin_44194732/article/details/105627533