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影响:
一旦启用了严格模式,以下是一些会受到影响的主要方面:
- 变量声明:在严格模式下,如果你尝试使用未声明的变量,将会抛出一个错误。而在非严格模式下,未声明的变量会成为全局变量。
- 对象字面量:在严格模式下,尝试使用重复的属性名将会抛出一个错误。
- 删除变量、函数和函数参数:在严格模式下,尝试删除变量、函数或函数参数将会抛出一个错误。
- 八进制字面量:在严格模式下,八进制字面量不再被允许。
- this 值:在函数中使用
this
,如果没有明确的上下文(例如,在全局作用域中),它的值将是undefined
,而不是全局对象。 - 函数中的
eval()
:在严格模式下,eval()
内部声明的变量不会泄漏到外部作用域。 - 错误处理:严格模式会改变一些错误的处理方式,比如,在
catch
块中,如果你尝试重新抛出异常但没有指定参数,将会抛出一个错误。 - 其他限制:还有一些其他的限制和变化,比如禁止使用
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。