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的核心原理分析】
自我理解和珠峰培训周啸天老师的堆栈理解方法大同小异