15个实用的JavaScript片段

1.如何区分IE及非IE浏览器:


if(!+[1,]){ //IE 11 不支持

alert("这是 IE 浏览器");

}else{

alert("这不是 IE 浏览器");

2.将日期直接转换为数值:


+new Date();


3.非IE浏览器下将类数组对象 “arguments”转为数组:


Array.prototype.slice.call(arguments);


4.最简单的选择运算符||:


var a = 0 || 3;

console.log(a); //结果3 

如果=后面的第一个值计算结果为布尔值“真”,则 a 的值取第 1 个,否则取第 2 个。


5.单链式运算(如 a++ -1):


var a=10;

console.log(a++ -1); 

先执行“a-1”,再执行“a=a+1”。


6.有趣的void操作符:


<a href="javascript:void(0)">我是一个死链接</a>


void是一种操作符,用来计算一个表达式但不返回值。


7.跳转至新页面,并且保证浏览器不会再回退:


location.replace("http://www.baidu.com");


location 的 replace() 方法可以用一个新的文档替换当前文档,并且该方法还会覆盖 History 对象中的记录。


8.几秒钟之后返回上一页:


<meta http-equiv="refresh" content="3;url=javascript:window.history.go(-1);">


9.在打开的子窗口中刷新父窗口:


window.opener.location.reload();


10.验证是否为负数的正则表达式:


/^-\d+$/.test(str);


11.用JavaScript打印页面:


window.print()


12.显示/隐藏一个DOM元素:


el.style.display = "";

el.style.display = "none"; //el是待操作的DOM元素

DOM元素的显示/隐藏主要是通过设置元素的样式display属性来实现。


13.实现alert()中的文本换行:


alert("p\np")


"\n"代表换行符。


14.实现ECMAScript5中的Object.create()函数: 


function clone(proto){

function _clone(){}

_clone.prototype = proto;

_clone.prototype.constructor = _clone;

return new_clone(); //等价于 Object.create(Person);

var me = clone(Person);

用原型链形式继承,构造函数重新指向新创建的对象。


15.理解JavaScript中的闭包:


例如,以下代码会输出5次,结果都是5,那么如何输出0、1、2、3、4?


for(var i = 0; i < 5; i++) {

setTimeout(function() {

console.log(i);

}, 1000);

利用闭包的原理实现,代码如下:


for(var i = 0; i < 5; i++) {

(function(e) {

setTimeout(function() {

console.log(e);

}, 1000);

})(i);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值