V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  rabbbit  ›  全部回复第 83 页 / 共 115 页
回复总数  2284
1 ... 79  80  81  82  83  84  85  86  87  88 ... 115  
2019-01-01 15:28:41 +08:00
回复了 rabbbit 创建的主题 问与答 [问题 vue]网页加载完毕后,往下拉滚动条时会卡住
@Exia 玻璃用了这几个属性
border-top 顶上的高光 b
ox-shadow inset 内圈亮光 和右下的阴影
background(linear-gradient) 线性渐变
backdrop-filter(blur) 模糊效果(仅 safari 支持)
2019-01-01 14:50:03 +08:00
回复了 rabbbit 创建的主题 问与答 [问题 vue]网页加载完毕后,往下拉滚动条时会卡住
@Exia 挂在 Github 上,那张图挺大的,估计被墙干扰了吧
2019-01-01 14:40:32 +08:00
回复了 rabbbit 创建的主题 问与答 [问题 vue]网页加载完毕后,往下拉滚动条时会卡住
@Exia 移动端有问题就把背景去掉了,背景要用电脑看才会显示.
2018-12-30 22:35:21 +08:00
回复了 brblm 创建的主题 问与答 接个水龙头花了两小时,费了两卷水胶布
生料带买的一般 10~15 圈左右, 送的薄的 20 圈都不够
如果水龙头和管子公差大,就多缠几圈.注意方向,缠反了越拧越松
还不行就加点麻丝
2018-12-28 11:05:17 +08:00
回复了 Ipeterh 创建的主题 程序员 每天都在学习,突然感觉一直都是在抄代码,崩溃了
browserslistrc -->prettierrc
2018-12-28 10:55:19 +08:00
回复了 Ipeterh 创建的主题 程序员 每天都在学习,突然感觉一直都是在抄代码,崩溃了
习惯了就好了
我 vue cli3 .eslintrc.js 配置死活不生效
最后才发现,Prettier 的设置要写在.browserslistrc 里,写 eslintrc.js 当然没用...
就这个玩意折腾了一天...
真冷,东北人差点被冻死...
2018-12-24 18:12:16 +08:00
回复了 aloyuu 创建的主题 问与答 大家推荐几个优秀的图片轮播 JS
2018-12-24 18:05:11 +08:00
回复了 wangmingli 创建的主题 问与答 !
2018-12-24 15:14:05 +08:00
回复了 nohup 创建的主题 程序员 经过技术选型研究,我们放弃了 React,转向 Vue
厚黑学的完美实践
2018-12-22 03:26:41 +08:00
回复了 mason961125 创建的主题 天黑以后 20181222 午夜俱乐部
丰年好大雪
2018-12-22 01:43:32 +08:00
回复了 innoink 创建的主题 程序员 说中文命名的 来翻译一下
添加一个"特性"到某个"属性"中
通过一个"代理"连接到另一个"代理客户端"
2018-12-22 01:28:40 +08:00
回复了 fourstring 创建的主题 Vue.js 关于 Vue 中向一个组件的一个 prop 传递对象的问题
2018-12-21 21:36:50 +08:00
回复了 wly19960911 创建的主题 问与答 js 的 this 指向问题(并非基础)
更正
baseValue: bar,
referenced name: 'foo'
-->

baseValue: foo,
referenced name: 'bar'
2018-12-21 21:30:07 +08:00
回复了 wly19960911 创建的主题 问与答 js 的 this 指向问题(并非基础)
GetValue(v)这个内部函数的作用就是获取真实的那个值

文档这 https://www.w3.org/html/ig/zh/wiki/ES5/%E7%B1%BB%E5%9E%8B#GetValue
总结来说就是
如果不是 Reference,就直接返回 v.
如果 v 是 Reference,则 v 一定表示的是个对象 /环境记录项(<--可以理解成所谓的作用域)

如果 v 是表示对象的 Reference, 则调用内部方法 get
如果是环境记录项,则调用内部方法 GetBindingValue(标识符名, 是否是严格模式)

GetBindingValue(N,S)的文档在 https://www.w3.org/html/ig/zh/wiki/ES5/%E5%8F%AF%E6%89%A7%E8%A1%8C%E4%BB%A3%E7%A0%81%E4%B8%8E%E6%89%A7%E8%A1%8C%E7%8E%AF%E5%A2%83#GetBindingValue

总结来说就是
如果该变量未初始化,且不是严格模式,返回 undefined.否者报错
如果已初始化,则返回绑定的值(这步操作没说,我猜用的是 GetIdentifierReference)


往后看 GetIdentifierReference
https://www.w3.org/html/ig/zh/wiki/ES5/%E5%8F%AF%E6%89%A7%E8%A1%8C%E4%BB%A3%E7%A0%81%E4%B8%8E%E6%89%A7%E8%A1%8C%E7%8E%AF%E5%A2%83#GetIdentifierReference.28lex.2C_name.2C_strict.29

总结来说就是
在当前作用域找,没有就去递归去上一层找,直到全局对象 window,如果还没有,就返回 undefined
2018-12-21 21:11:48 +08:00
回复了 wly19960911 创建的主题 问与答 js 的 this 指向问题(并非基础)
函数调用的表达式是 CallExpression : MemberExpression Arguments

Arguments 就是函数后面的那个括号, MemberExpression 就是括号前面的东西

例如 (foo.bar)(1) MemberExpression 是 (foo.bar), Arguments 是 (1)

函数调用时,执行如下过程(以下记为 过程 a)
```
1 令 ref 为执行 MemberExpression 的结果
2 令 func 为调用 GetValue(ref)的结果
3 令 argList 为执行 Arguments 的结果
4 如果 func 不是 Object,抛出 TypeError
5 如果 func 没有内部属性[[call]],抛出 TypeError
6 如果 ref 是 Reference
a 如果 ref 的基值是 Boolean String Number Object //作为属性调用 // Es6 新增 Symbol
i 令 thisValue 为调用 GetBase(ref)的结果
否则, ref 的基值是环境记录 //作为变量调用
i 令 thisValue 为调用 GetBase(ref). ImplicitThisValue 的结果 // ImplicitThisValue 通常返回 undefined,除非 provideThis 值为 true(with 语句)
否则,ref 不是 Reference
令 thisValue 为 undefined // 进入函数时, thisVaule 为 undefined 会让 this 指向 window 全局对象
8 return func.[[call]](thisValue, argList)
```
函数本质上就是个 Object,有个内部方法[[call]],调用函数,本质上就是调用函数的内部方法[[call]]
```
F.[[call]](thisValue ,argList)
```
这个 thisValue 就是 this 值[在进入执行环境时,如果 thisValue 为 undefind, 则令 this 为 Global Object(浏览器里就是 window)]

所以过程 a 的执行过程就是先运行 MemberExpression,然后判断返回值.如果不是 Reference 类型, 令 thisValue 为 undefined

---
另外解释下什么是 Reference

js5 的类型有 Number Object Function null undefined String Boolean Reference
这个 Reference 是个虚假的概念,实际上不存在.作用是用来描述 delete 等操作,Reference 由 3 部分组成 base value referenced name strict reference flag
例如 foo.bar 返回的是个 Reference 结构如下
```
{
baseValue: bar,
referenced name: 'foo'
strict: false
}

```
再举个例子 function() {var foo = 1; var bar = 2}

这里的 foo 也返回一个 Reference
```
{
baseValue: {foo:1, bar: 2} <-- 这个可以理解为所谓的作用域
referenced name: 'foo'
strict: false
}

```
---

有没有 this 取决于 MemberExpression,那么,(foo.bar)返回的是什么?

()是群组运算符, 表达式为 PrimaryExpression : ( Expression )
运行过程是
```
返回执行 Expression 的结果。这可能是一个 Reference。
```
https://www.w3.org/html/ig/zh/wiki/ES5/%E8%A1%A8%E8%BE%BE%E5%BC%8F#.E7.BE.A4.E7.BB.84.E8.BF.90.E7.AE.97.E7.AC.A6

也就是返回什么取决于括号里边的 Expression (foo.bar)就是 foo.bar , (false || foo.bar)就是 false|| foo.bar

||操作的定义在
https://www.w3.org/html/ig/zh/wiki/ES5/%E8%A1%A8%E8%BE%BE%E5%BC%8F#.E4.BA.8C.E5.85.83.E9.80.BB.E8.BE.91.E8.BF.90.E7.AE.97.E7.AC.A6

注意第 5 步返回的是 GetValue(rref),不是 Reference.
2018-12-21 02:04:01 +08:00
回复了 codermagefox 创建的主题 问与答 我真的很讨厌为了名利所做的不负责任的内容产出
至于原因嘛 属性操作返回的是 Reference,|| 和 = 返回的是真实的那个值
2018-12-21 02:00:05 +08:00
回复了 codermagefox 创建的主题 问与答 我真的很讨厌为了名利所做的不负责任的内容产出
this 往下扣还真没几个教程能扣明白的
foo = {bar: function() {console.log(this)}}
(foo.bar)() // {bar: ƒ}
(false || foo.bar)() // Window
(foo.bar = foo.bar)() // Window
2018-12-20 00:15:06 +08:00
回复了 cjw1115 创建的主题 问与答 经常刷抖音,不幸福感骤增?
1818 才是快乐的源泉
页面有什么兼容性要求吗?
前端页面部分不复杂可以免费帮你写,有兴趣留个微信
1 ... 79  80  81  82  83  84  85  86  87  88 ... 115  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5335 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 59ms · UTC 01:57 · PVG 09:57 · LAX 18:57 · JFK 21:57
Developed with CodeLauncher
♥ Do have faith in what you're doing.