js一些稀奇古怪的写法-带你装逼带你飞
//定时器的第三个参数
setInterval(function(str1,str2,num){
alert(str1+str2+num)
},1000,'参数1','还可以有很多参数,不同的类型...',123); //控制台输出有样式的文本信息或图片
//大大的中文详细文档http://wayou.github.io/2014/09/10/chrome-console-tips-and-tricks/
console.log('%c这些字是红色的,哈哈','color:red'); //字符串链连接的三种方法
document.body.innerHTML='<div id="content"><p class="abc"></p><span>span</span>...</div>'; // document.body.innerHTML=
'<div id="content">'+
'<p class="abc"></p>'+
'<span>span</span>'+
'...'+
'</div>'; // document.body.innerHTML=
'<div id="content">\
<p class="abc"></p>\
<span>span</span>\
...\
</div>'; //3--狂拽炫酷吊炸天吧 o(≧v≦)o~~注意空格 //跳出嵌套for循环,给for添加个名字,用break跳出指定的for循环
name : for(var i=0; i<5; i++){
for(var j=0; j<1; j++){
if(i==3){
break name;
}
alert(i);
}
} //for的简写,没有条件限制,一直执行,相当于条件一直是true
var num=0;
for(;;){
alert(num);
if(++num>5){ //内部给限制条件,以跳出无限循环
break;
}
} //for的多表达式--for(初始化语句; 条件语句; 控制语句)
for(var i=10,j=10; i>0 && j<15; i--,j++){
alert( 'i='+i+',j='+j )
} //typeof和instanceof等加上小括号的写法,还有的好像in,return
//原因:由于 typeof也可以像函数的语法被调用,比如 typeof(obj),但这并不是一个函数调用。 那两个小括号只是用来计算一个表达式的值,这个返回值会作为 typeof操作符的一个操作数。 实际上不存在名为 typeof的函数。js秘密花园文档--http://bonsaiden.github.io/JavaScript-Garden/zh/#types.typeof
alert( typeof 6 ) //number
alert( typeof(6) ) //number //省略创建对象时的小括号,包括自己创建的构造函数也可以
var arr=new Array();
var arr=new Array; //匿名函数自执行,知乎文档--匿名函数附近使用括号或一些一元运算符的惯用法,就是来引导解析器,指明运算符附近是一个表达式--按照这个理解,可以举出五类,超过十几种的让匿名函数表达式立即调用的写法:--http://www.zhihu.com/question/20249179
( function() {}() );
( function() {} )();
[ function() {}() ]; //小括号或中括号括起来调用 ~ function() {}();
! function() {}();
+ function() {}();
- function() {}(); //位运算符[~!+...]在前,小括号调用 delete function() {}();
typeof function() {}();
void function() {}();
new function() {}();
new function() {}; 1, function() {}();
1 ^ function() {}();
1 > function() {}(); //等等 //改变this指向等相近方法arguments,callee,caller,call,apply的区别
//百度文档--http://wenku.baidu.com/link?url=NPq__nPg_VNrcb89NFPGi_deo-S7EnL1LHgH7qgbUsdpmYLDTtEYzKuh4u8AXZqHNpU3qmp6YgYrSxA12ocB8gJ69scGsosdOS9o5HQzmZS
var obj={
aaa:function(){
alert(this);
},
bbb:function(fn){
fn();
}
}
obj.aaa(); //this指向obj
obj.aaa.call(); //this指向document,无参数默认指向window
//call()和apply()方法的作用相同,区别在与接收参数的方式不一样
obj.bbb(function(){
alert(1);
arguments.callee(); //arguments.callee等于其上面的这个函数,加个()就是让自身函数再次执行
}); //无限弹出1,因为函数每次执行到最后又调用了自身函数--执行
//arguments.length是实参长度,arguments.callee.length是形参长度,由此能够判断调用时形参长度是否和实参长度一致
function a(){
if(a.caller){
alert(a.caller)
}else{
alert('top')
}
}
a(); //弹出top;因为a是最外层函数,此时a.caller为null; function b(){
a();
}
b(); //弹出function b(){a();},因为此时a.caller指向b这个函数体
js一些稀奇古怪的写法-带你装逼带你飞的更多相关文章
- 软件测试工程师人手必备的一只:TOM猫,可以带你装逼带你飞!
Hi,你来了? 其实没有猫,为了让你们好好学习,天天向上!我可真的是拼了命了! 写这篇文章的缘由是,近期有同学经常问到一个这样的问题: 老师,tomcat是啥? 老师,Linux是啥? 老师,xshe ...
- [转载] vim带你装逼带你飞(一)
前言:逃离windows有很长时间了,特别是当今android盛行的时代,我们没有理由不选择ubuntu作为编译开发android之首选.其实操作系统只是我们使用的一个工具, windows也好lin ...
- vim带你装逼带你飞(一)
前言:逃离windows有很长时间了,特别是当今android盛行的时代,我们没有理由不选择ubuntu作为编译开发android之首选.其实操作系统只是我们使用的一个工具, windows也好lin ...
- vim带你装逼带你飞(二)
上篇我贴上了我使用的vim配置及插件配置,有这些东西只能是一个脚本堆积,无从谈高效的代码阅读开发. 下面我们就来写经常使用的命令,就从配置F系列快捷键开始吧. F+ n 快捷键配置 F1基本上时帮助, ...
- JS !function 稀奇古怪的写法
!function(){alert("Execute after ()fun!")}(alert("Execute Firstly!")) 注意上面的执行顺序
- 带你装B,带你飞的大数据时代
我接触过的大数据有: 1.美国棱镜计划 2.前几天新闻报道的,苹果公司窃取用户隐私 3.百度的用户搜素习惯统计分析 4.淘宝的用户购物习惯分析,智能推荐宝贝 5.浏览器的智能标签页 ... 最想了解的 ...
- 你会用Python做出装逼的东西吗
如果我回答:“用Python很牛逼,但不能做出装逼的东西”,那大家来学习“小白的Python入门教程 ”,还有多少意义? 所以,为了让装逼的小船升级为牛逼的巨轮,让大家学完“小白的Python入门教程 ...
- js函数的各种写法与调用
以下是我见过的各种js函数的各种写法以及调用,虽然有些写法及其调用我不清楚其专业术语叫啥,但并不影响我写一个总结笔记. 我们刚开始接触js语音,经常看到的这种名叫“使用function关键字来定义函数 ...
- js函数常见的写法以及调用方法
写在前面:本文详细的介绍了5中js函数常见的写法以及调用的方法,平时看别人代码的时候总是看到各种不同风格的js函数的写法.不明不白的,找了点资料,做了个总结,需要的小伙伴可以看看,做个参考.1.常规写 ...
随机推荐
- MySql 申明变量以及赋值
sql server中变量要先申明后赋值: 局部变量用一个@标识,全局变量用两个@(常用的全局变量一般都是已经定义好的): 申明局部变量语法:declare @变量名 数据类型:例如:declare ...
- java GUI之事件处理
常见事件及相应事件源类型 事件源 用户操作 事件 JButton 点击按钮 ActionEvent JTextField 在文本域按回车键 ActionEvent JCheckBox 点击复选框 Ac ...
- HtmlPrefixScopeExtensions
http://blog.stevensanderson.com/2010/01/28/editing-a-variable-length-list-aspnet-mvc-2-style/
- 新建搜索bar
CGFloat enterW = self.view.frame.size.width - 80;// 245; CGFloat y = 0; containerView = [[UIVi ...
- 《Code Complete》ch.20 软件质量概述
WHAT & WHY ? 软件质量的特性 外在特性 正确性(Correctness) 可用性(Usability) 效率(Efficiency) 可靠性(Reliability) 完整性(In ...
- SparkSQL使用之JDBC代码访问Thrift JDBC Server
启动ThriftJDBCServer: cd $SPARK_HOME/sbin start-thriftserver.sh & 使用jdbc访问ThriftJDBCServer代码段: pac ...
- 利用UDP19端口实施DOS攻击的真实案例
昨天在一个用户现场发现了一个利用UDP19端口对互联网受害者主机进行DOS攻击的真实案例.这个情况是我第一次见到,个人认为对以后遇到此类情况的兄弟具有参考价值.有必要做一个简单的分析记录. 在此次的分 ...
- IIS7.0设置404错误页,返回500状态码
一般在II6下,设置自定义404错误页时,只需要在错误页中选择自定义的页面,做自己的404页面即可.但是在IIS7.0及以上时,设置完404错误页后,会发现状态码返回的是500,并且可能会引起页面乱码 ...
- C/C++笔试经典程序(二)
1.下面5个函数哪个能够成功进行两个数的交换? swap1传的是值的副本,在函数体内被修改了形参p.q(实际参数a.b的一个拷贝),p.q的值确实交换了,但是它们是局部变量,不会影响到主函数中的a和b ...
- 关于 profile文件(转)
登录shell执行了两个特殊文件, 1个是:\etc\profile, 这个文件由系统管理员设置,通常做一些如检查是否有邮件,设置默认的创建文件的掩码,给某些表转到处变量赋值,已经任何管理员希望每当用 ...