4. 使数组充满未定义
您可以用未定义的数组填充数组 , 只需在其中放置逗号即可:
您认为这有多少个项目?肯定是4对吧?逗号之间的每个空格各一个 。 这将使其与您用于 的逗号数相同 。 undefined[undefined undefined undefined undefined
不 , 它实际上是每个逗号一个!?这是三个未定义的哈哈 , 好吧 。
您还可以使用 .奇怪的是 , 如果你给它更多的参数 , 它们会填满数组......undefinednew Array(3)Array
因此 , 第一个参数根据参数的传递方式而有所不同 。 认真地?
5.数组是对象 , 我知道你已经知道这一点 , 但是...
..尝试使用像对象一样使用一个 。
我的意思是 , 当你想到它时 , 这是显而易见的 , 但是如果你习惯于将数组视为它们自己的类型 , 那就很奇怪了 。
数组实际上只是一个数字索引对象 。 唯一的区别是 , 如果它是从您的日志构造的 , 则会获得小括号 , 并且会隐藏索引 。 Array[
我们看到: .[true true true
但实际上它看起来像:.{0: true 1: true 2: true
6. 类数组对象
就像数组可以像对象一样使用一样 , 对象也可以像数组一样使用:
我们将此对象称为“类似数组” , 因为它具有 and 索引 , 但它不是从 构造的 。 前面示例中的对象是类似数组的对象 。 lengthArrayarguments
7. 嵌套函数中的 this 关键字
您可能知道 , 它指的是函数中的全局对象 , 在方法中 , 它引用它所属的对象:this
有道理吧? 始终引用在其中声明函数并在全局作用域中声明的对象 。 thismyFunc
但这实际上不是真的 。 只有方法以这种方式运行 。 当在函数声明中使用时 , 它始终引用全局对象 , 即使它是在方法中声明的!this
这是函数表达式有用的原因之一...
函数表达式导致与声明它们的作用域相同 。 this
8. 函数属性
函数是对象 , 没有duh , 你现在肯定知道这一点 。 如果需要 , 可以向它们添加属性 , 并且它们已经具有属性 , 例如 和。 lengthnamecaller
因此 , 如果我创建一个函数 , 我可以向其添加内容并使用属性访问它们...arguments.callee
但是 , 您也可以在声明函数之前添加 prop:
这是有效的 , 因为函数语句被提升了 , 这意味着javascript将它们从代码中提取出来 , 并在其他任何东西之前定义它们 。
函数文本和函数表达式不会被吊起 , 因此它们都会中断...
但是在第一个示例中已经声明 , 因此我们可以向其添加所需的任何内容 。 myFunc
9. 功能不需要命名 , 当...
...它们被添加到数组中:
...从函数返回:
...赋值给变量:
...当它们被表达时:
10. 功能范围令人困惑
我的意思是 , 您几乎肯定知道这一点 , 但是您是否知道以下每个函数中的含义范围:this
myFunc— 引用, 因为对象方法始终引用它们的对象 。 myObj
myNestedFunc— 指因为脂肪箭头函数始终保持其创建位置的范围 。 myObj
mySuperNestedFunc— 指全球范围!
当一个函数被声明时 , 它总是引用全局范围 。 this
现在就这样!
那里的JS可能已经注意到这些提示大致遵循Javascript The Definitive Guide 。
【OPPO|大多数JS开发人员不知道的十件事(机翻)】在过去的几个月里 , 我一直在浏览它 , 并在这里添加了任何让我感到惊讶的东西(我是一个缓慢的读者 , 这是一本大书!
- meta|促进更逼真AR/VR体验,Meta正在开发全新空间音频工具
- 英特尔|两倍变焦自拍能有多大区别?苹果、三星、OPPO自拍样张解析
- 酷派|OPPO折叠屏手机专利曝光酷派新机cool 12A上架
- 中国广电|再握新专利,或将提高互联体验!专利大厂OPPO又上新了!
- OPPO|入门级机型都可以升级最新系统!OPPO实在太良心了
- javascript|穿戴设备将迎变革,OPPO又增新专利,能提升模式切换效率!
- NVIDIA的DLSS技术已经深受玩家和开发者认可|性能2倍于DLSS!AMD游戏神技FSR 2.0正式支持Xb
- OPPO|OPPO真香千元机,骁龙778G+五千电池官方降至1299,好评率高达97%
- oppopad|1299元起的轻薄实力派!OPPO Pad Air是否值得选?
- 荣耀|盘点618最值得入手旗舰机,OPPO荣耀三星皆有上榜
