theme: scrolls-light
highlight: a11y-dark
这是我参与11月更文挑战的第3天,活动详情查看:2021最后一次更文挑战
前言
- 本章一起来学习一下不常用的小知识
script 小知识
async
异步加载脚本 不会导致阻塞- 直接在标签上写async即可异步加载
- 脚本文件不会按顺序执行
charset
通过src属性指定代码的字符集defer
可以使script里的内容在文档完全被解析和显示之后执行- 直接在标签上使用defer就可以延迟加载脚本
- 一个页面中最好只有一个defer 文件不会按顺序执行
- 如果有多个脚本文件 先执行不带defer的脚本
language
传入编码使用的语言(已废弃)src
传入引用的外部文件路径type
是language
的替代属性,默认为text/javascript
js // 转义字符小知识 // 转义字符 \ <script> console.log("</script>") // 报错 Uncaught SyntaxError: Invalid or unexpected token </script> // 当浏览器遇到</script>字符串 就会认为是结束的标签 需要进行转义 console.log("<\/script>")
+ 书写页面时 应将script标签放在body标签后面 以达到延迟加载脚本逻辑效果
js // 神奇的注释 // 这种注释不建议使用 还是会被浏览器进行解析 <script > <!-- console.log("<\/script>") // </script> //--> </script>
+ noscript
标签 - 在浏览器不支持js的情况下 使用noscript
标签可以展示提醒 - 在正常情况下看不到内容 js <div id="app">43432423423</div> <noscript>浏览器不支持Js</noscript> // 关闭js解析 文字出现 <script> console.log("<\/script>") </script>
数据类型 小知识
- 隐式声明全局变量
js let fn = ()=>{a =1} fn() // 执行函数 隐式声明全局变量 a // 1
+ 一次声明多个变量
js let a=1,b=2,c=3 a // 1 b // 2 c // 3
+ Number 类型 小知识 - js中可以保存正0和负0
```js
let a = +0,b = -0
a // 0
b //-0
a == b // true
```
- 不重要的浮点自动保存为整数
- 浮点数占用内存空间是整数的两倍 会自动转换为整数
```js
let a = 0.,b=2.0
a // 0
b // 2
```
- isNaN 方法冷知识
- isNaN 会将参数先转为number
- isNaN 方法同时适用于Object 会先调用Object的ValueOf()方法 来确定能否转为number类型
```js
isNaN(1) //false
isNaN('string') // true 不能被转为数字
isNaN(NaN) // true
```
- Number() 方法
- Number转换数字是不够合理 建议使用parseInt
```js
Number(0001) // 1
Number(000013) // 13
```
总结
- 今日份冷门小知识get~