javascript扩展小知识(必须细节)

简介: javascript扩展小知识(必须细节)

1.new一个空对象

1.1数组:

大家知道new一个空数组很简单,是这样写的:

let arr = new Array

但是我告诉大家还有一个更简单的方法:

let arr = Array()

1.2对象:

大家知道new一个空数组很简单,是这样写的:

let arr = new Object

但是我告诉大家还有一个更简单的方法:

let arr = Object()

2.开启严格模式:

2.1测试:

<script>
  'use strict'
  a = 1
  console.log(a);
</script>

打印结果:

不开启严格模式是这样的:

这时候大家可以打印一下window,a在window中出现了

2.2影响:

一旦启用了严格模式,以下是一些会受到影响的主要方面:

  1. 变量声明:在严格模式下,如果你尝试使用未声明的变量,将会抛出一个错误。而在非严格模式下,未声明的变量会成为全局变量。
  2. 对象字面量:在严格模式下,尝试使用重复的属性名将会抛出一个错误。
  3. 删除变量、函数和函数参数:在严格模式下,尝试删除变量、函数或函数参数将会抛出一个错误。
  4. 八进制字面量:在严格模式下,八进制字面量不再被允许。
  5. this 值:在函数中使用 this,如果没有明确的上下文(例如,在全局作用域中),它的值将是 undefined,而不是全局对象。
  6. 函数中的 eval():在严格模式下,eval() 内部声明的变量不会泄漏到外部作用域。
  7. 错误处理:严格模式会改变一些错误的处理方式,比如,在 catch 块中,如果你尝试重新抛出异常但没有指定参数,将会抛出一个错误。
  8. 其他限制:还有一些其他的限制和变化,比如禁止使用 with 语句等。

使用严格模式是一种很好的实践,因为它可以帮助你避免一些常见的错误和不安全的做法。然而,需要注意的是,由于严格模式可能会改变一些现有的代码行为,因此在将现有代码迁移到严格模式时,需要仔细检查和测试。

3.获取dom:

正常你们获取id的dom是是不是这样获取的:

<body>
  <div id="a" ></div>
  <script>
      console.log(document.getElementById('a'));
  </script>
</body>

打印结果:

其实有个更简单的方法:

<body>
  <div id="a" ></div>
  <script>
    console.log(a);
  </script>
</body>

打印结果:

当然这种方法可能只适用于id选择器,具体其他选择器就不清楚了,如有什么梗方便的用法,请在下方留言讨论,谢谢。

4.Axios和ajax的区别:

axios是通过Promise实现对ajax技术的一种封装,而ajax是通过js对xml进行了封装,简单来说就是ajax技术实现了局部数据的刷新,axios实现了对ajax的封装,axios有的ajax都有,ajax有的axios不一定有,总结一句话就是axios是ajax,ajax不止axios。


相关文章
|
6月前
|
JavaScript 前端开发
Google Earth Engine(GEE)扩展——ee-polyfill JavaScript 方法 (ES6+)
Google Earth Engine(GEE)扩展——ee-polyfill JavaScript 方法 (ES6+)
42 1
|
6月前
|
人工智能 JavaScript 前端开发
【利用AI让知识体系化】TypeScript目标:扩展JavaScript能力(二)
【利用AI让知识体系化】TypeScript目标:扩展JavaScript能力
|
6月前
|
人工智能 JavaScript 前端开发
【利用AI让知识体系化】TypeScript目标:扩展JavaScript能力(一)
【利用AI让知识体系化】TypeScript目标:扩展JavaScript能力
|
6月前
|
存储 JavaScript 前端开发
在JavaScript中,对象和数组是如何进行扩展的?
在JavaScript中,对象和数组是如何进行扩展的?
41 4
|
3月前
|
前端开发 JavaScript 程序员
聊聊前端 JavaScript 的扩展运算符 “...“ 的使用场景
聊聊前端 JavaScript 的扩展运算符 “...“ 的使用场景
|
5月前
|
JavaScript 前端开发 Java
【JavaScript】ECMAS6(ES6)新特性概览(二):解构赋值、扩展与收集、class类全面解析
【JavaScript】ECMAS6(ES6)新特性概览(二):解构赋值、扩展与收集、class类全面解析
59 2
|
6月前
|
JavaScript
js开发:请解释什么是ES6的扩展运算符(spread operator),并给出一个示例。
ES6的扩展运算符(...)用于可迭代对象展开,如数组和对象。在数组中,它能将一个数组的元素合并到另一个数组。例如:`[1, 2, 3, 4, 5]`。在对象中,它用于复制并合并属性,如`{a: 1, b: 2, c: 3}`。
44 3
|
JavaScript
【js学习笔记二十二】...扩展运算符
【js学习笔记二十二】...扩展运算符
48 0
|
JavaScript
Vue 全局导入 JS 方式以及对 ClassName 进行增删扩展
Vue 全局导入 JS 方式以及对 ClassName 进行增删扩展
79 0