javascript技术大全
这更像是一篇为自己而写的文章,没有过多的解释,sorray。
关于:return
function fn(num){
var a = num;
if(a>1){
a = num + 1;
return a;
}else if(a<1){
a = 0;
return a;
}
}
可以写成这样
function fn(num){
var a = num;
if(a>1){
a = num + 1;
}else if(a<1){
a = 0;
}
return a;
}
利用return替代if..else..
function fn(num){
if(num==5){
...........
return;
}
// 否则语句
.........
}
利用return跳出多重循环
function fn(){
for(var i=0;i<10;i++){
for(var j=0;j<10;j++){
............
if(xx===xx){
return;
}
}
}
}
利用return this实现链式调用
var Fn = function(dom){this.dom = dom;};
Fn.prototype.click = function(fn){
this.dom.onclick = function(){
fn();
};
return this;
};Fn.prototype.mouseover = function(fn){
this.dom.onmouseover = function(){
fn();
};
return this;
};var fn = new Fn(box);
fn.click(function(){
console.log('click');
}).mouseover(function(){
console.log('mouseover');
})
合理利用 || &&
if(fn()!=='undefined'){
.........
}
可以这样
fn()&&要执行的代码
如果需要在&&或者||中使用赋值语句需要加()
return fn() && (a = 10);
利用||替程序实现默认值
var a = name || '追梦子';
function相关性...
参数较多的情况下使用透明参数(使用对象)
function fn(obj){
for(var k in obj){
..............
}
}fn({a:1,b:2,c:3,d:4,e:5})
-------------------------
减少函数参数,如果内部可以计算出的话。
利用函数解决变量污染问题
(function(){
// 代码块
}())
利用函数创建私有变量
var fn = (function(){
var name = 'xxx';
return function(){
.............
};
}());
利用闭包保存上下文
for(var i=0;i<10;i++){
(function(i){
lis[i].onclick = function(){
..........
};
}(i))
}
合理利用apply
var arr = [2,3];
function add(a,b){
console.log(a + b);
}add.apply(null,arr); //5
关于:for
简写1:
var arr = [2,3,4,5];
for(var i=-1;(arr.length-1)>i++;){
console.log(arr[i]);
}
var arr = [2,3,4,5];
var i = -1;for(;(arr.length-1)>i++;){
console.log(arr[i]);
}
简写2:
var arr = [2,3,4,5];
for(var i=0,c;c=arr[i++];){
console.log(c);
}
空白
var that = this; // 可以这样
varthat = this; // 不可以这样
varthat本身就会被当成是一个变量,没有人会知道你这是在声明一个变量,就好象如果你想要使用varthat而不是声明一样。
数字
javascript没有区分数字类型所以“ 1 和 1.0 ” 是一样的。
对象属性
在低版本浏览器中对象属性如果是保留字或者关键字必须加引号,不然会报错,并且使用的时候也必须通过[]来访问这个属性,在高版本浏览器中已经不存在这个问题。
数组
javascript并没有提供真正的数组而是通过对象提供了一种类似数组的结构。因此数组在大部分情况下和对象非常相似。
因为数组也是对象我们也可以使用for in来遍历数组
var arr = [2,3];
for(var k in arr){
console.log(k,arr[k]);
}
数组有一个length属性,这个length只包含数字,如果是其他的这个长度是不会包含进来的。比如:
var arr = [2,3];
arr.fn = function(){};
这个fn是不会包含在length里面的
只能这样
var arr = [2,3];
arr[5] = 10;console.log(arr.length);
因此对象没有length属性也很正常。但是也说了数组就是对象,所以我们想让对象也实现数组的一些特性也是很正常不过的。
因为设计的原因数组的类型也是Object所有给了我们不少小麻烦,不过我们可以自己实现一个。
通过length = 0可以用来清空数组。
javascript技术大全的更多相关文章
- javascript开源大全
javascript开源大全 Ajax框架-jQuery 可视化HTML编辑器-CKEditor 国产jQuery-UI框架-(jUI)-DWZ 网页开发FireFox插件-Firebug 服务器端的 ...
- 【JS】javascript 正则表达式 大全 总结
javascript 正则表达式 大全 总结 参考整理了一些javascript正则表达式 目的一:自我复习归纳总结 目的二:共享方便大家搜索 微信:wixf150 验证数字:^[0-9]*$ 验证n ...
- JavaScript资源大全中文版(Awesome最新版--转载自张果老师博客)
JavaScript资源大全中文版(Awesome最新版) 目录 前端MVC 框架和库 包管理器 加载器 打包工具 测试框架 框架 断言 覆盖率 运行器 QA 工具 基于 Node 的 CMS 框 ...
- 细数Javascript技术栈中的四种依赖注入
作为面向对象编程中实现控制反转(Inversion of Control,下文称IoC)最常见的技术手段之一,依赖注入(Dependency Injection,下文称DI)可谓在OOP编程中大行其道 ...
- javascript函数大全
JavaScript函数大全 1.document.write(""); 输出语句2.JS中的注释为//3.传统的HTML文档顺序是:document->html->( ...
- 第61节:Java中的DOM和Javascript技术
Java中的DOM和Javascript技术 DOM是一门技术,是文档对象模型.所需的文档只有标记型文档,如我们所学的html文档(文档中的所有标签都封装成为对象了) DOM: 为Document O ...
- 能说明你的Javascript技术很烂的五个原因
Javascript在互联网上名声很臭,但你又很难再找到一个像它这样如此动态.如此被广泛使用.如此根植于我们的生活中的另外一种语言.它的低学习门槛让很多人都称它为学前脚本语言,它另外一个让人嘲笑的东西 ...
- JavaScript 资源大全中文版
我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列的资源整理.awesome-javascript 是 sorrycc 发起维护的 JS 资源列表,内容包括:包管理器.加 ...
- JFreeChart生成饼形图(3) (转自 JSP开发技术大全)
JFreeChart生成饼形图(3) (转自 JSP开发技术大全) 14.3 利用JFreeChart生成饼形图 通过JFreeChart插件,即可以生成普通效果的饼形图,也可以生成3D效果的饼形图: ...
随机推荐
- [UE4]Animation Techniques used in Paragon部分翻译及索引
视频地址:https://www.youtube.com/watch?v=1UOY-FMm-xo 主要内容:该视频由Paragon游戏制作者Laurent Delayen(Senior Program ...
- d3 API zoom
常用的看明白了,还有几个地方不太明白. zoom函数: area path circle .on("zoom", function(){ that.svg_obj.select(& ...
- Linux内核--网络栈实现分析(八)--应用层发送数据(下)
本文分析基于Linux Kernel 1.2.13 原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7547826 更多请查看专栏,地 ...
- go json null字段的转换
最近试了试go中对json null字段进行转换,代码如下: struct 转 json: package main import ( "encoding/json" " ...
- FSM 浅谈
之前写过一篇关于状态机的,上一篇讲过的我也就不再罗嗦了,不知道欢迎去查看我的上一篇随笔,主要是感觉上次自己封装的还是不行,所以又进行修改了一番! 我本人是个菜鸟,最开始接触状态机的时候,状态机一个可厉 ...
- ubuntu常用配置
安装文件共享服务 0.更改本机主机名,修改 /etc/hostname文件(ubuntu默认都是ubuntu) 1.安装 #sudo apt-get install samba samba-commo ...
- tsd-提升IDE对JavaScript智能感知的能力
在编写前端JavaScript代码时,最痛苦的莫过于代码的智能感知(Intelli Sense). 追其根源,是因为JavaScript是一门弱类型的动态语言.对于弱类型的动态语言来说,智能感知就是I ...
- java提高篇(三十)-----Iterator
迭代对于我们搞Java的来说绝对不陌生.我们常常使用JDK提供的迭代接口进行Java集合的迭代. Iterator iterator = list.iterator(); while(iterator ...
- Linux gzip、gunzip
200 ? "200px" : this.width)!important;} --> 介绍 gzip是linux自带的压缩文件命令,它的压缩比大概能达到60%-70%,比z ...
- 为什么一定要杀掉病毒?---帮一位老师解决MyDocument.exe优盘文件夹图标病毒问题
最近一位大学老师给我抱怨了一个她遇到的烦恼,一直在纠结,生活都被打乱了,事情大概是这样的: 她的优盘里辛辛苦苦弄好备课文件,放在了优盘里,可是每次上课时,就是找不到文件.有时好多文件都被修改了,非常烦 ...