1. 变量提升:所有变量的申明语句,都会被提升到代码的头部。(先解析代码,获取所有申明的语句,再一行行执行;函数也会提升)
2. switch case语句执行的是严格相等运算`===`,不会进行类型转换。
3. 多重循环中,`break`、`continue`不带参数的话只针对最内层循环
4. 语句的前面可以加标签,相当于定位符。通常与`break`、`continue`一起使用,跳出特定的循环
~~~
top:
for (var i = 0; i < 3; i++){
for (var j = 0; j < 3; j++){
if (i === 1 && j === 1) break top;
console.log('i=' + i + ', j=' + j);
}
}
~~~
也可用于跳出代码块{}
5. js数据类型:数值、字符串、undefined、null、布尔值、对象、(ES6中新增Symbol)
6. typeof检测值的类型`typeof 123`
7. typeof null会被检测成object
8. `null`表示一个空的对象,转为数值时为0,`undefined`表示一个此处无定义的原始值,转为数值时为NaN
9. 空数组[]和空对象{}对应的布尔值为true,而空字符串对应的布尔值为false
10. js内部数值都是通过64位的浮点数存储`1 === 1.0`,浮点数不是精确值,涉及到小数计算要谨慎。
~~~
0.3 / 0.1
// 2.9999999999999996
~~~
11. 字符串转数值`parseInt()`,一个个字符转,遇到不能转,返回转好的
Number()遇到不能转返回NaN
parseInt第二个参数填要转成的进制
12. 字符串转浮点数`parseFloat()`
13. 判断布尔值`isFinite()`
14. `btoa()`:任意值转为 Base64 编码; `atob()`:Base64 编码转为原来的值
15. 查看对象属性`Obejct,keys(obj)`
删除对象属性 `delete obj.p`
判断属性是否在对象/数组中`p in obj`
查看是否为自身的属性`obj.hasOwnProperty('toString')`
遍历对象的属性
~~~
for (var i in obj) {
console.log('键名:', i);
console.log('键值:', obj[i]);
}
~~~
操作对象的多个属性with
16. 返回函数名`name`
返回函数参数个数`length`
17. 闭包:定义在函数内部的函数
18. `eval`命令接受一个字符串作为参数,并将这个字符串当作语句执行。
19. 清空数组的方法:length设置为0
20. addEventListener和onclick的区别?
addEventListener可以添加多个监听事件,多次触发;onclick只触发一次
- php
- 安全
- php7
- 特性
- 编译安装
- 源码整体框架
- 基本变量
- thinkphp3.2.3
- thinkphp5.0
- thinkphp6.0
- laravel
- 配置
- 路由
- artisan控制台
- eloquent
- tinker
- composer
- 加密解密
- 小知识点
- 数组
- string
- 代码简洁之道
- 编译
- 语法糖
- lumen
- smarty
- 错题集
- 算法及数据结构
- 线性表结构
- 插入排序
- 冒泡排序
- 数据库
- mysql
- oracle
- PostgreSQL
- redis
- sqlserver
- 前端
- 备忘
- js
- nodejs
- vue
- css
- electron
- vue
- 语法糖
- colorui使用笔记
- 微信小程序
- 操作系统
- windows
- bat
- 快捷键
- linux
- sed
- 问题解决
- git
- docker
- docker-compose
- 正则表达式
- ps
- lua
- 协议相关
- 问题思索
- Golang
- 测试
- 读取和写入json配置文件
- 类
- 接口
- mod
- gin
- fyne
- 禅道二次开发
- 服务
- apache
- 漏洞配置
- http server优化
- nginx
- 安装
- 面试题库
- freeswitch