jS的一些另类写法

1.Function构造函数

一般来说函数不能直接用内置对象的构造函数来创建基本变量,但是Function构造函数却可以,Function有两个参数,参数1:需要的参数名,参数2: 函数语句.举个列子:
var func = new Function ("whatever", "console.log(whatever)");
func("今儿周五");
打印出的结果就是: 今儿周五
相当于以下代码:
function func (whatever) {
   console.log(whatever);
}
func("今儿周五")

2.~~按位非

相当于parseInt取整,属于二进制操作
console.log(~~3.94);
打印结果是4

3.强制转化为布尔类型

通过两个取反,可以强制转换为Boolean类型,即!! ,这个写法可以代替if-else,举个例子:
var b = !!"aaaa";
console.log(b);
打印结果是true,一个!打印结果是false,aaa可以写成别的什么都行

4.随机颜色

var body = document.querySelector("body");
var color = (~~(Math.random()*(1<<24))).toString(16);
body.style.backgroundColor = "#"+color;
每次刷新页面,页面颜色都会刷新(慢点刷新很晃眼的)

5.直接执行函数

(function () {
    console.log("hello,world");
})();
打印结果是:hello,world
(function (argu) {
    console.log(argu);
})("好使吗")
打印结果是:好使吗

6.函数作为返回值

即闭包函数
function f () {
    return function  () {
            console.log(666);
        }
}
var v = f();
console.log(v);
打印结果为:666
辛苦劳作 转载请注明出处 O(∩_∩)O
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 7,943评论 2 17
  • 官方中文版原文链接 感谢社区中各位的大力支持,译者再次奉上一点点福利:阿里云产品券,享受所有官网优惠,并抽取幸运大...
    HetfieldJoe阅读 2,560评论 1 17
  • 原文: https://github.com/ecomfe/spec/blob/master/javascript...
    zock阅读 3,414评论 2 36
  • 在归程中,坐在身边的小伙子眉清目秀,听说他是汕大附中的,我们赶紧要了他的电话和微信――以后去汕大不让进的时候,有个...
    秋笏笑月阅读 268评论 0 0
  • 说明 1 << i = 2^i 所以 1 << n 是子集的个数在枚举的 s 中,如果第 i 个二进制位为 1 ,...
    qratosone阅读 884评论 0 0