js常用随手记
1. 判断是否是空对象
let myObject={}
Object.keys(myObject).length //
2. void 0 代替 undefined
undefined 不是保留字,在局部作用域下能被重写,因此在 val === undefined 是有风险的
并且代替后有以下优点:
- void 0 占用字节更少
- void 0 更安全靠谱
至于 void 0 相比 undefined 效率高低问题,简单做了多次测试,取平均值来看,void 0 要比 undefined 快一点点,也算是一个优势。
console.time();for(let i=0;i<100000;i++){undefined};console.timeEnd();
console.time();for(let i=0;i<100000;i++){void 0};console.timeEnd();
一个应用实例场景,对比 vue dev 和 vue prod 两个版本,也会发现dev版本内的 undefined 被替换为了 void 0(当然dev内的 'undefined' 没被替换)。
在ES规范中我们能看到,void 0返回的仍旧是 undefined,这里的 undefined 为全局没被污染的(window.undefined),因此不会被局部的 undefined 定义影响。
参考:ES规范
stackoverflow-what does void 0 mean
3. textContent 与 innerText 区别
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<span id="hello">Hello <span style="display: none;">World</span></span>
<script>
let domHello = document.querySelector('#hello'); console.log('textContent', domHello.textContent); // Hello World
console.log('innerText', domHello.innerText); // Hello
</script>
</body>
</html>
概述:
- innerText 不是w3标准,但目前被各大浏览器厂商实现,有很好的IE 兼容性(IE6-11)
- textContent 是w3标准,除了 IE6-8外,其他浏览器支持良好
- 二者表现有挺大区别,例如上面例子
js常用随手记的更多相关文章
- js常用工具类.
一些js的工具类 复制代码 /** * Created by sevennight on 15-1-31. * js常用工具类 */ /** * 方法作用:[格式化时间] * 使用方法 * 示例: * ...
- Js常用技巧
摘录:http://crasywind.blog.163.com/blog/static/7820316920091011643149/ js 常用技巧 1. on contextmenu=" ...
- JS常用的标准函数
原文:JS常用的标准函数 1.Array类型函数 array.concat(item...) 函数功能:关联数组,实现数组相加功能,但并不影响原先数组,concat返回新数组. array.join( ...
- JS 常用功能收集
JS 常用效果收集 1. 回到顶部>> 爱词霸
- JS常用校验方法(判断输入框是否为空,数字,电话,邮件,四舍五入等)
JS常用校验方法: 1.判断输入框是否为空,为空时弹出提示框 2.关闭窗口 3.检查输入字符串是否为数字 4.强制把大写转换成小写 5.手机号码校验,长度为11位数字. 6.电子邮件校验 7.电话号码 ...
- Node.js 常用工具
Node.js 常用工具 util 是一个Node.js 核心模块,提供常用函数的集合,用于弥补核心JavaScript 的功能 过于精简的不足. util.inherits util.inherit ...
- JS常用正则表达式备忘录
摘要: 玩转正则表达式. 原文:JS常用正则表达式备忘录 作者:前端小智 Fundebug经授权转载,版权归原作者所有. 正则表达式或"regex"用于匹配字符串的各个部分 下面是 ...
- js常用数据类型(Number,String,undefined,boolean) 引用类型( function,object,null ),其他数据类型( 数组Array,时间Date,正则RegExp ),数组与对象的使用
js常用数据类型 数字类型 | 字符串类型 | 未定义类型 | 布尔类型 typeof()函数查看变量类型 数字类型 Number var a1 = 10; var a2 = 3.66; conso ...
- js常用身份校验规则
js常用身份校验规则 var Validator = { extractBirth: function(id) { // 身份证提取出生年月 var re = null, split, year, m ...
随机推荐
- Nginx 作用
django 请求的生命周期 Nginx 的作用: 浏览器 --- nginx(反向代理器)-- uwsgi --- django项目nginx : 负载均衡, 将任务分发给不同的uwsgi 动静分离 ...
- 正则--test exec search match replace
1:test 是正则对象的方法不是字符串的方法,使用例子:正则对象也就是那个设定好的模式对象 var str = "hello world!"; var result = /^he ...
- Yarn架构详解
Yarn架构介绍Yarn/MRv2最基本的想法是将原JobTracker主要的资源管理和job调度/监视功能分开作为两个单独的守护进程.有一个全局的ResourceManager(RM)和每个Appl ...
- Oracle查询语句导致CPU使用率过高问题处理
解决此问题的关键在于如何找到造成CPU使用率过高的SQL语句.步骤如下: 1.使用Process Explorer工具查看到Oracle进程,双击Oracle进程,在弹出的属性窗口的Threads选项 ...
- Promise 错误处理
Promise 是一个异步返回单个结果的函数或方法 不使用 `catch()` 时,在 `success handler` 里的错误无法被捕捉到 使用 `catch()` 时,在 `succe ...
- Android studio报Error:(26, 13)-v7:27.错误的解决方法
1.报错图片 2.上图我画了红圈很明显就提示报错方向就是项目文件:build.gradle 3.解决方法如下 添加此方法到项目构建.gradle文件中: repositories { maven ...
- Spring _day01_下载、概述、监听器
Spring:SE/EE开发的一站式框架. .一站式框架:有EE开发的每一层解决方案. . WEB层 :SpringMVC . Service层 :Spring的Bean管理,Spring ...
- 简单gulp.js
引入相对应的文件 let gulp = require("gulp"); let inject = require("gulp-inject"); let cl ...
- layui从子iframe打开父iframe的tab选项卡
数据表格字段: {field: 'novelId', title: '小说ID',width:100,templet: '<div><a href="javascript: ...
- sed 命令简介
sed 默认把文件内容全部显示出来(擅长取行 替换) 参数如下: - n 取消默认输出 一般与P一起使用 查看内容‘10,20p’ 显示10-20 行的内容 - i 修改文件内容 - i.bak ...