node

node

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。
javascript/jQuery

javascript/jQuery

一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。
MongoDB

MongoDB

MongoDB 是一个基于分布式文件存储的数据库
openstack

openstack

OpenStack是一个由NASA(美国国家航空航天局)和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目。
VUE

VUE

一套构建用户界面的渐进式框架。与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计。
bootstrap

bootstrap

Bootstrap is the most popular HTML, CSS, and JS framework for developing responsive, mobile first projects on the web.
HTML

HTML

超文本标记语言,标准通用标记语言下的一个应用。
CSS/SASS/SCSS/Less

CSS/SASS/SCSS/Less

层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。
PHP

PHP

PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执
每天进步一点点

每天进步一点点

乌法把门的各累笑寂静
求职招聘

求职招聘

猎头招聘专用栏目
Python

Python

一种解释型、面向对象、动态数据类型的高级程序设计语言。

javascaript 操作 table dom

catchcat 发表了文章 • 0 个评论 • 1687 次浏览 • 2016-12-18 22:47 • 来自相关话题

### js 操作table 对象:
?
cells 返回包含表格中所有单元格的一个数组。
rows 返回包含表格中所有行的一个数组。
tBodies 返回包含表格中所有 tbody 的一个数组。
--------------------------------------------------------------------------------------
caption 返回表格标题。 Yes
cellPadding 设置或返回单元格内容和单元格边框之间的空白量。 Yes
cellSpacing 设置或返回在表格中的单元格之间的空白量。 Yes
frame 设置或返回表格的外部边框。 Yes
height 已废弃?设置或者返回表格高度 instead D
rules 设置或返回表格的内部边框(行线)。 Yes
summary 设置或返回对表格的描述(概述)。 Yes
tFoot 返回表格的 TFoot 对象。如果不存在该元素,则为 null。 Yes
tHead 返回表格的 THead 对象。如果不存在该元素,则为 null。
------------------------------------------------------------------------------------------
createCaption() 为表格创建一个 caption 元素。 Yes
createTFoot() 在表格中创建一个空的 tFoot 元素。 Yes
createTHead() 在表格中创建一个空的 tHead 元素。 Yes
deleteCaption() 从表格删除 caption 元素以及其内容。 Yes
deleteRow() 从表格删除一行。 Yes
deleteTFoot() 从表格删除 tFoot 元素及其内容。 Yes
deleteTHead() 从表格删除 tHead 元素及其内容。 Yes
insertRow() 在表格中插入一个新行。
?<table border='1' width="350">
<thead>
<tr>
<th>#</th>
<th>name</th>
<th>age</th>
<th>operation</th>
</tr>
</thead>
<tbody></tbody>
</table>


<script>
var oName = document.getElementById('name');
var oAge = document.getElementById('age');
var obtn = document.getElementById('btn');
var oTable = document.getElementsByTagName('table')[0];
var oid = oTable.tBodies[0].rows.length+1;
var oTfoot = oTable.tFoot;


obtn.onclick = function(){

var oTr = document.createElement('tr');

oTr.innerHTML = '<td>'+(oid++)+'</td><td>'+oName.value+'</td><td>'+oAge.value+'</td><td><a href="javascript:;">del</a></td>'

oTable.tBodies[0].appendChild(oTr);

var odel = oTr.getElementsByTagName('a')[0];
odel.onclick = function(){
oTable.tBodies[0].removeChild(this.parentNode.parentNode);
};

};


</script> 查看全部
### js 操作table 对象:
?
cells 返回包含表格中所有单元格的一个数组。
rows 返回包含表格中所有行的一个数组。
tBodies 返回包含表格中所有 tbody 的一个数组。
--------------------------------------------------------------------------------------
caption 返回表格标题。 Yes
cellPadding 设置或返回单元格内容和单元格边框之间的空白量。 Yes
cellSpacing 设置或返回在表格中的单元格之间的空白量。 Yes
frame 设置或返回表格的外部边框。 Yes
height 已废弃?设置或者返回表格高度 instead D
rules 设置或返回表格的内部边框(行线)。 Yes
summary 设置或返回对表格的描述(概述)。 Yes
tFoot 返回表格的 TFoot 对象。如果不存在该元素,则为 null。 Yes
tHead 返回表格的 THead 对象。如果不存在该元素,则为 null。
------------------------------------------------------------------------------------------
createCaption() 为表格创建一个 caption 元素。 Yes
createTFoot() 在表格中创建一个空的 tFoot 元素。 Yes
createTHead() 在表格中创建一个空的 tHead 元素。 Yes
deleteCaption() 从表格删除 caption 元素以及其内容。 Yes
deleteRow() 从表格删除一行。 Yes
deleteTFoot() 从表格删除 tFoot 元素及其内容。 Yes
deleteTHead() 从表格删除 tHead 元素及其内容。 Yes
insertRow() 在表格中插入一个新行。
?
<table border='1' width="350">
<thead>
<tr>
<th>#</th>
<th>name</th>
<th>age</th>
<th>operation</th>
</tr>
</thead>
<tbody></tbody>
</table>


<script>
var oName = document.getElementById('name');
var oAge = document.getElementById('age');
var obtn = document.getElementById('btn');
var oTable = document.getElementsByTagName('table')[0];
var oid = oTable.tBodies[0].rows.length+1;
var oTfoot = oTable.tFoot;


obtn.onclick = function(){

var oTr = document.createElement('tr');

oTr.innerHTML = '<td>'+(oid++)+'</td><td>'+oName.value+'</td><td>'+oAge.value+'</td><td><a href="javascript:;">del</a></td>'

oTable.tBodies[0].appendChild(oTr);

var odel = oTr.getElementsByTagName('a')[0];
odel.onclick = function(){
oTable.tBodies[0].removeChild(this.parentNode.parentNode);
};

};


</script>

Js动态创建/添加/删除li

catchcat 发表了文章 • 0 个评论 • 1717 次浏览 • 2016-12-16 23:13 • 来自相关话题

<!doctype html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<input id="tex" type="text">
<input id="btn" type="button" value="提交">
<ul id="oul"></ul>

<script>
var otex = document.getElementById('tex');
var obtn = document.getElementById('btn');
var oul = document.getElementById('oul');

obtn.onclick = function(){

//创建删除标签
var createTagA = document.createElement('a');
createTagA.setAttribute('href','javascript:;')
createTagA.innerHTML = "删除";

//创建li标签
var createTagLi = document.createElement('li');
var ali = oul.getElementsByTagName('li');
createTagLi.innerHTML = otex.value;
//li添加删除标签
createTagLi.appendChild(createTagA);

//判断输入框内容
if(!/^[\w\u4E00-\u9FA5]+$/.test(otex.value)){
alert('请不要输入数字/字母(不区分大小写)/汉字之外的符号');
otex.value = "";
}else{
//如果条件满足//兼容ie和ff
if(ali.length>0){
oul.insertBefore(createTagLi,ali[0]);
otex.value = "";
}else{
oul.appendChild(createTagLi);
otex.value = "";
};

};

//删除事件
createTagA.onclick = function(){
oul.removeChild(this.parentNode)
};

};



</script>
</body>
</html> 查看全部
<!doctype html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<input id="tex" type="text">
<input id="btn" type="button" value="提交">
<ul id="oul"></ul>

<script>
var otex = document.getElementById('tex');
var obtn = document.getElementById('btn');
var oul = document.getElementById('oul');

obtn.onclick = function(){

//创建删除标签
var createTagA = document.createElement('a');
createTagA.setAttribute('href','javascript:;')
createTagA.innerHTML = "删除";

//创建li标签
var createTagLi = document.createElement('li');
var ali = oul.getElementsByTagName('li');
createTagLi.innerHTML = otex.value;
//li添加删除标签
createTagLi.appendChild(createTagA);

//判断输入框内容
if(!/^[\w\u4E00-\u9FA5]+$/.test(otex.value)){
alert('请不要输入数字/字母(不区分大小写)/汉字之外的符号');
otex.value = "";
}else{
//如果条件满足//兼容ie和ff
if(ali.length>0){
oul.insertBefore(createTagLi,ali[0]);
otex.value = "";
}else{
oul.appendChild(createTagLi);
otex.value = "";
};

};

//删除事件
createTagA.onclick = function(){
oul.removeChild(this.parentNode)
};

};



</script>
</body>
</html>

如何限制让input只能输入字母(不分大小写)和中文和数字。

回复

catchcat 回复了问题 • 1 人关注 • 1 个回复 • 5270 次浏览 • 2016-12-16 17:52 • 来自相关话题

JavaScript中console使用

yinzi 发表了文章 • 0 个评论 • 1394 次浏览 • 2016-12-16 16:59 • 来自相关话题

1. console.log 基础打印,只能打印字符串、数字等简单变量或常亮;
console.info() console.error() console.warn()
2. console.group 信息分组,如图:





3. console.dir 可以打印对象所有的属性,根据对象结构以json形式打印;
4. console.dirxml 可以打印dom节点,如 console.dirxml(document.getElementById("dom_id"));
5. console.assert 判断变量是否为真
6. console.trace 追踪函数使用的记录,打印出第几行哪里使用过此函数
7. console.time() console.timeEnd() 记录运行代码运行时间
8. console.profile() console.profileEnd() 分析函数运行时间
? 查看全部

1. console.log 基础打印,只能打印字符串、数字等简单变量或常亮;
console.info() console.error() console.warn()
2. console.group 信息分组,如图:
AR``M8L9TLWLV]_THE0RZO.png


3. console.dir 可以打印对象所有的属性,根据对象结构以json形式打印;
4. console.dirxml 可以打印dom节点,如 console.dirxml(document.getElementById("dom_id"));
5. console.assert 判断变量是否为真
6. console.trace 追踪函数使用的记录,打印出第几行哪里使用过此函数
7. console.time() console.timeEnd() 记录运行代码运行时间
8. console.profile() console.profileEnd() 分析函数运行时间
?

如何清除input中的内容

catchcat 回复了问题 • 3 人关注 • 2 个回复 • 5342 次浏览 • 2016-12-16 16:44 • 来自相关话题

如何实现折叠菜单的正负号的图标的变化

lopo1983 回复了问题 • 2 人关注 • 1 个回复 • 1812 次浏览 • 2016-07-23 03:32 • 来自相关话题

ajax 加载html

admin 发表了文章 • 0 个评论 • 1923 次浏览 • 2016-07-07 11:56 • 来自相关话题

一、jQuery怎么加载一个html页面到我指定的div里面。我想把a.html里面的某一部份的内容加载到b.html的一个div里。
比如,我要加载a.html里面的<div id=“aContent"></div>这个div里面的所有内容加载到b.html的这个div里<div id="rightCon"></div>
请问要怎么写呢。

用jquery ajax 可以做到
假设 a.html 和b.html在同一目录?
b.html?<script >
$(document).ready(function() {
bodyContent = $.ajax({
url: "b.html",
global: false,
type: "POST",
data: ({
id: this.getAttribute('aContent')
}),
dataType: "html",
async: false,
success: function(msg) {
alert(msg);
}
})
});
</script>



二、juqery $.ajax 请求另一个html页面的指定的“一部分”加载到本页面div,重点是一部分数据加载到本页面div ?(来自百度知道)大至思路如下:$.ajax( {
url: url, //这里是静态页的地址
type: "GET", //静态页用get方法,否则服务器会抛出405错误
success: function(data){
var result = $(data).find("另一个html页面的指定的一部分");
$("本页面div").html(result);


}
});

或参考下面的代码:$(function(){
$.ajax({
type:"POST",
url:"LoginLoadArticle.ashx",
data: "type="+escape("最新公告") ,
success:function(msg){
$(".gonggao").html(msg);
},
error:function(XMLHttpRequest, textStatus, thrownError){}
})

}) 查看全部
一、jQuery怎么加载一个html页面到我指定的div里面。我想把a.html里面的某一部份的内容加载到b.html的一个div里。
比如,我要加载a.html里面的<div id=“aContent"></div>这个div里面的所有内容加载到b.html的这个div里<div id="rightCon"></div>
请问要怎么写呢。

用jquery ajax 可以做到
假设 a.html 和b.html在同一目录?
b.html?
<script >
$(document).ready(function() {
bodyContent = $.ajax({
url: "b.html",
global: false,
type: "POST",
data: ({
id: this.getAttribute('aContent')
}),
dataType: "html",
async: false,
success: function(msg) {
alert(msg);
}
})
});
</script>




二、juqery $.ajax 请求另一个html页面的指定的“一部分”加载到本页面div,重点是一部分数据加载到本页面div ?(来自百度知道)大至思路如下:
$.ajax( {
url: url, //这里是静态页的地址
type: "GET", //静态页用get方法,否则服务器会抛出405错误
success: function(data){
var result = $(data).find("另一个html页面的指定的一部分");
$("本页面div").html(result);


}
});


或参考下面的代码:
$(function(){
$.ajax({
type:"POST",
url:"LoginLoadArticle.ashx",
data: "type="+escape("最新公告") ,
success:function(msg){
$(".gonggao").html(msg);
},
error:function(XMLHttpRequest, textStatus, thrownError){}
})

})

移动端h5,图片手势轮播+手势放大缩小

回复

yinzi 发起了问题 • 1 人关注 • 0 个回复 • 4052 次浏览 • 2016-05-23 17:12 • 来自相关话题

requirejs AMD规范的问题

回复

Qiu 发起了问题 • 1 人关注 • 0 个回复 • 2776 次浏览 • 2016-03-10 16:38 • 来自相关话题

JavaScript装逼指南

lopo1983 发表了文章 • 1 个评论 • 1672 次浏览 • 2015-12-24 15:21 • 来自相关话题

如何写JavaScript才能逼格更高呢?怎样才能组织JavaScript才能让别人一眼看出你不简单呢?是否很期待别人在看完你的代码之后感叹一句“原来还可以这样写”呢?下面列出一些在JavaScript时的装逼技巧。

1. 匿名函数的N种写法

你知道“茴”的四种写法吗?ε=(?д?`*)??… 扯淡,但你或许不知道匿名函数的好几种写法。一般情况下写匿名函数是这样的:(function(){})();但下面几种写法也是可以的:

!function(){}();
+function(){}();
-function(){}();
~function(){}();
~(function(){})();
void function(){}();
(function(){}());

当然,这样的写法,没有什么区别,纯粹看装逼程度。

2. 另外一种undefined

从来不需要声明一个变量的值是undefined,因为JavaScript会自动把一个未赋值的变量置为undefined。所有如果你在代码里这么写,会被鄙视的:var data = undefined;但是如果你就是强迫症发作,一定要再声明一个暂时没有值的变量的时候赋上一个undefined。那你可以考虑这么做:var data = void 0; // undefinedvoid在JavaScript中是一个操作符,对传入的操作不执行并且返回undefined。void后面可以跟()来用,例如void(0),看起来是不是很熟悉?没错,在HTML里阻止带href的默认点击操作时,都喜欢把href写成javascript:void(0),实际上也是依靠void操作不执行的意思。

当然,除了出于装逼的原因外,实际用途上不太赞成使用void,因为void的出现是为了兼容早起ECMAScript标准中没有undefined属性。void 0的写法让代码晦涩难懂。

3. 抛弃你的if和else

当JS代码里有大量的条件逻辑判断时,那代码看起来多可怕:if () { // ... } else if () { // ... } else if () { // ... } else { // ... }不用我说你都猜到用什么语法来简化if-else了。没错,用||和&&,很简单的原理就不用说啦。值得一提的是,有时候用!!操作符也能简化if-else模式。例如这样:// 普通的if-else模式 var isValid = false; if (value && value !== 'error') { isValid = true; } // 使用!!符号 var isValid = !!(value && value !== 'error');“!”是取反操作,两个“!”自然是负负得正了。

4. 不加分号

关于JavaScript要不要加分号的争论已经吵了好几年。Google的JavaScript语法指南告诉我们要加分号,很多JavaScript语法书籍也告诉我们加上分号更安全。然而,分号加不加,全靠个人对代码的写法,你确信写得足够安全的话,不加分号显得更加高大上。

5. 赶上ES6的早班车

ES6即将在年底正式发布,赶时髦的开发者们,赶快在自己的代码里用起来。用上module声明,写写class,捣鼓一下Map,这些都会让你的代码逼格更高。神马?你都不会用?那也好歹在代码头部加上一个ES5的"use strict";呀。

6. 添加AMD模块支持

给你写的代码声明一下AMD模块规范,这样别人就可以直接通过AMD的规范来加载你的模块了,如果别人没有通过规范来加载你的模块,你也可以优雅地返回一个常规的全局对象。来看看jQueryUI的写法:(function( factory ) { if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define( [ "jquery" ], factory ); } else { // Browser globals factory( jQuery ); } }(function( $ ) { // 这里放模块代码 return $.widget; }));就用它来包裹你的实际代码吧,保证别人一看代码就知道你是个专业的开发者。

7. Function构造函数

很多JavaScript教程都告诉我们,不要直接用内置对象的构造函数来创建基本变量,例如var arr = new Array(2);?的写法就应该用var arr = [1, 2];的写法来取代。但是,Function构造函数(注意是大写的Function)有点特别。Function构造函数接受的参数中,第一个是要传入的参数名,第二个是函数内的代码(用字符串来表示)。var f = new Function('a', 'alert(a)'); f('test'); // 将会弹出窗口显示test或许大家疑惑了,你这样绕着写,跟function f(a) {alert(a);}比有什么好处呢?
事实上在某种情况下是有好处的,比如不能用eval的时候,你需要传入字符串内容来创建一个函数的时候。在一些JavaScript模板语言的解析,和字符串转换json对象的时候比较实用。

8. 用原生Dom接口不用jQuery

一个傲娇的前端工程师是不需要jQuery的,前提是你经得起折腾。实际上,几乎所有的jQuery方法都可以用同样的Dom原生接口来实现,因为这货本来就是用原生接口实现的嘛,哈哈。怎样做到不用jQuery(也叫jQuery-free)呢?阮老师的博文《如何做到 jQuery-free?》?给我们很好的讲解了做法。依赖于querySelector和querySelectorAll这两个现代浏览器的接口,可以实现跟jQuery同样方便和同样效率的Dom查找,而且其他的类似Ajax和CSS的接口同样也可以把原生方法做一些兼容方面的包装即可做到jQuery-free。

总结

上述所有的JavaScript装逼写法,一些是为了程序易懂或者效率提高的语法糖,这样的做法是比较可取的,比如前面所说的省略if-else的做法;而有些写法则容易造成代码晦涩难懂或者效率偏低,例如上面说的void 0的写法,实际上不可取。JavaScript语法上灵活,让大家对同一个功能有很多种不同的写法,写法上的优化是对程序结构和代码维护有很大帮助的。所以,装逼得装得好看。 查看全部
如何写JavaScript才能逼格更高呢?怎样才能组织JavaScript才能让别人一眼看出你不简单呢?是否很期待别人在看完你的代码之后感叹一句“原来还可以这样写”呢?下面列出一些在JavaScript时的装逼技巧。

1. 匿名函数的N种写法

你知道“茴”的四种写法吗?ε=(?д?`*)??… 扯淡,但你或许不知道匿名函数的好几种写法。一般情况下写匿名函数是这样的:(function(){})();但下面几种写法也是可以的:

!function(){}();
+function(){}();
-function(){}();
~function(){}();
~(function(){})();
void function(){}();
(function(){}());

当然,这样的写法,没有什么区别,纯粹看装逼程度。

2. 另外一种undefined

从来不需要声明一个变量的值是undefined,因为JavaScript会自动把一个未赋值的变量置为undefined。所有如果你在代码里这么写,会被鄙视的:var data = undefined;但是如果你就是强迫症发作,一定要再声明一个暂时没有值的变量的时候赋上一个undefined。那你可以考虑这么做:var data = void 0; // undefinedvoid在JavaScript中是一个操作符,对传入的操作不执行并且返回undefined。void后面可以跟()来用,例如void(0),看起来是不是很熟悉?没错,在HTML里阻止带href的默认点击操作时,都喜欢把href写成javascript:void(0),实际上也是依靠void操作不执行的意思。

当然,除了出于装逼的原因外,实际用途上不太赞成使用void,因为void的出现是为了兼容早起ECMAScript标准中没有undefined属性。void 0的写法让代码晦涩难懂。

3. 抛弃你的if和else

当JS代码里有大量的条件逻辑判断时,那代码看起来多可怕:if () { // ... } else if () { // ... } else if () { // ... } else { // ... }不用我说你都猜到用什么语法来简化if-else了。没错,用||和&&,很简单的原理就不用说啦。值得一提的是,有时候用!!操作符也能简化if-else模式。例如这样:// 普通的if-else模式 var isValid = false; if (value && value !== 'error') { isValid = true; } // 使用!!符号 var isValid = !!(value && value !== 'error');“!”是取反操作,两个“!”自然是负负得正了。

4. 不加分号

关于JavaScript要不要加分号的争论已经吵了好几年。Google的JavaScript语法指南告诉我们要加分号,很多JavaScript语法书籍也告诉我们加上分号更安全。然而,分号加不加,全靠个人对代码的写法,你确信写得足够安全的话,不加分号显得更加高大上。

5. 赶上ES6的早班车

ES6即将在年底正式发布,赶时髦的开发者们,赶快在自己的代码里用起来。用上module声明,写写class,捣鼓一下Map,这些都会让你的代码逼格更高。神马?你都不会用?那也好歹在代码头部加上一个ES5的"use strict";呀。

6. 添加AMD模块支持

给你写的代码声明一下AMD模块规范,这样别人就可以直接通过AMD的规范来加载你的模块了,如果别人没有通过规范来加载你的模块,你也可以优雅地返回一个常规的全局对象。来看看jQueryUI的写法:(function( factory ) { if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define( [ "jquery" ], factory ); } else { // Browser globals factory( jQuery ); } }(function( $ ) { // 这里放模块代码 return $.widget; }));就用它来包裹你的实际代码吧,保证别人一看代码就知道你是个专业的开发者。

7. Function构造函数

很多JavaScript教程都告诉我们,不要直接用内置对象的构造函数来创建基本变量,例如var arr = new Array(2);?的写法就应该用var arr = [1, 2];的写法来取代。但是,Function构造函数(注意是大写的Function)有点特别。Function构造函数接受的参数中,第一个是要传入的参数名,第二个是函数内的代码(用字符串来表示)。var f = new Function('a', 'alert(a)'); f('test'); // 将会弹出窗口显示test或许大家疑惑了,你这样绕着写,跟function f(a) {alert(a);}比有什么好处呢?
事实上在某种情况下是有好处的,比如不能用eval的时候,你需要传入字符串内容来创建一个函数的时候。在一些JavaScript模板语言的解析,和字符串转换json对象的时候比较实用。

8. 用原生Dom接口不用jQuery

一个傲娇的前端工程师是不需要jQuery的,前提是你经得起折腾。实际上,几乎所有的jQuery方法都可以用同样的Dom原生接口来实现,因为这货本来就是用原生接口实现的嘛,哈哈。怎样做到不用jQuery(也叫jQuery-free)呢?阮老师的博文《如何做到 jQuery-free?》?给我们很好的讲解了做法。依赖于querySelector和querySelectorAll这两个现代浏览器的接口,可以实现跟jQuery同样方便和同样效率的Dom查找,而且其他的类似Ajax和CSS的接口同样也可以把原生方法做一些兼容方面的包装即可做到jQuery-free。

总结

上述所有的JavaScript装逼写法,一些是为了程序易懂或者效率提高的语法糖,这样的做法是比较可取的,比如前面所说的省略if-else的做法;而有些写法则容易造成代码晦涩难懂或者效率偏低,例如上面说的void 0的写法,实际上不可取。JavaScript语法上灵活,让大家对同一个功能有很多种不同的写法,写法上的优化是对程序结构和代码维护有很大帮助的。所以,装逼得装得好看。