当前位置: 首页 > 科技观察

这些JavaScript编程黑科技,高质量的代码,让你惊叹

时间:2023-03-21 16:56:40 科技观察

Java是一门很好的语言,我可能学的是假JavaScript,哈哈!1.写一个单行评分组件“★★★★★☆☆☆☆☆”.slice(5-rate,10-rate);定义一个变量rate,取值从1到5,然后执行上面的代码,看图发现插件比较弱。2.如何假装用代码骂人SB(!(~+[])+{})[--[~+""][+[]]*[~+[]]+~~!+[]]+({}+[])[[~!+[]]*~+[]]了解原因请移步:一行可以伪装的JavaScript代码3.如何优雅地使用代码证明自己NB很棒console.log(([][[]]+[])[+!![]]+([]+{})[!+[]+!![]])4.正确的JavaScript错误处理的姿势,我说服你尝试{something}catch(e){window.location.href="//stackoverflow.com/search?q=[js]+"+e.message;}5.从一行代码开始学JavaScript[].forEach.call($$("*"),function(a){a.style.outline="1pxsolid#"+(~~(Math.random()*(1<<24))).toString(16)})被翻译成这样的普通语言Array.prototype.forEach.call(document.querySelectorAll('*'),dom=>dom.style.outline=`1pxsolid#${parseInt(Math.random()*Math.pow(2,24)).toString(16)}`)接下来,看看浏览器控件:神奇的事情发生了6.如何优雅地获得随机数StringMath.random().toString(16).substring(2)Math.random().toString(36).substring(2)7,(10)["toString"]()==="10"解析,请移步:js怪招18、匿名函数自执行这么多写法,你选哪一种呢?我选择去死9.另一种undefined永远不需要将变量的值声明为undefined,因为JavaScript会自动将一个未赋值的变量设置为undefined。所有如果你在代码中这样写,你会被鄙视的vardata=undefined;但是如果你是强迫症,在声明一个暂时没有值的变量的时候一定要赋值undefined。那你可以考虑这样做:vardata=void0;//undefinedvoid是JavaScript中的一个运算符,不执行传入的操作,返回undefined。void后面可以跟(),比如void(0),是不是很眼熟?没错,在HTML中用href屏蔽默认的点击操作时,大家都喜欢把href写成javascript:void(0),其实就是不执行void操作。当然,除了伪装的原因外,void的使用也不利于实际使用,因为void的出现是为了兼容早期ECMAScript标准没有undefined属性。写入void0会使代码变得晦涩难懂。10.关于如何优雅地舍入vara=~~2.33varb=2.33|0varc=2.33>>011.如何优雅地实现货币格式化:1234567890-->1,234,567,890用常规魔法实现:非常规优雅实现:12.我拿这个,你很聪明,我拿这个while(1){alert('Awesomeyoushutmedown')}你很聪明,清除缓存有什么技巧:Clearcache13.逗号运算符vara=0;varb=(a++,99);console.log(a);//1console.log(b);//9914,关于如何用常规方法交换两个整数:vara=1,b=2;a+=b;b=a-b;a-=b;缺点也很明显,Integer数据溢出。对于32位字符,最大个数为2147483647,如果为2147483645和2147483646,则交换失败。黑科技方法:a^=b;b^=a;a^=b;位操作全忘了15.实现标准JSON的深拷贝vara={a:1,b:{c:1,d:2}}varb=JSON.parse(JSON.stringify(a))不考虑在IE的情况下,标准JSON格式的对象相当实用,但undefined和function对象会被忽略。16.不要用Number、parseInt和parseFloat等方法把“1”字符串转成数字哈哈,强制类型转换是不允许的,于是我想到了强大的隐式转换vara=1+a17,如何强行写出”你好世界!”滚动条很长([]+[][(![]+[])[!+[]+!![]+!![]]+([]+{})[+!![]]+(!![]+[])[+!![]]+(!![]+[])[+[]]][([]+{})[!+[]+!![]+!![]+!![]+!![]]+([]+{})[+!![]]+([][[]]+[])[+!![]]+(![]+[])[!+[]+!![]+!![]]+(!![]+[])[+[]]+(!![]+[])[+!![]]+([][[]]+[])[+[]]+([]+{})[!+[]+!![]+!![]+!![]+!![]]+(!![]+[])[+[]]+([]+{})[+!![]]+(!![]+[])[+!![]]]((!![]+[])[+!![]]+([][[]]+[])[!+[]+!![]+!![]]+(!![]+[])[+[]]+([][[]]+[])[+[]]+(!![]+[])[+!![]]+([][[]]+[])[+!![]]+([]+{})[!+[]+!![]+!![]+!![]+!![]+!![]+!![]]+(![]+[])[!+[]+!![]]+([]+{})[+!![]]+([]+{})[!+[]+!![]+!![]+!![]+!![]]+(+{}+[])[+!![]]+(!![]+[])[+[]]+([][[]]+[])[!+[]+!![]+!![]+!![]+!![]]+([]+{})[+!![]]+([][[]]+[])[+!![]])())[+[]]+([][[]]+[])[!+[]+!![]+!![]]+(![]+[])[!+[]+!![]]+(![]+[])[!+[]+!![]]+([]+{})[+!![]]+([]+{})[!+[]+!![]+!![]+!![]+!![]+!![]+!![]]+[][(![]+[])[!+[]+!![]+!![]]+([]+{})[+!![]]+(!![]+[])[+!![]]+(!![]+[])[+[]]][([]+{})[!+[]+!![]+!![]+!![]+!![]]+([]+{})[+!![]]+([][[]]+[])[+!![]]+(![]+[])[!+[]+!![]+!![]]+(!![]+[])[+[]]+(!![]+[])[+!![]]+([][[]]+[])[+[]]+([]+{})[!+[]+!![]+!![]+!![]+!![]]+(!![]+[])[+[]]+([]+{})[+!![]]+(!![]+[])[+!![]]]((!![]+[])[+!![]]+([][[]]+[])[!+[]+!![]+!![]]+(!![]+[])[+[]]+([][[]]+[])[+[]]+(!![]+[])[+!![]]+([][[]]+[])[+!![]]+([]+{})[!+[]+!![]+!![]+!![]+!![]+!![]+!![]]+([][[]]+[])[+[]]+([][[]]+[])[+!![]]+([][[]]+[])[!+[]+!![]+!![]]+(![]+[])[!+[]+!![]+!![]]+([]+{})[!+[]+!![]+!![]+!![]+!![]]+(+{}+[])[+!![]]+([]+[][(![]+[])[!+[]+!![]+!![]]+([]+{})[+!![]]+(!![]+[])[+!![]]+(!![]+[])[+[]]][([]+{})[!+[]+!![]+!![]+!![]+!![]]+([]+{})[+!![]]+([][[]]+[])[+!![]]+(![]+[])[!+[]+!![]+!![]]+(!![]+[])[+[]]+(!![]+[])[+!![]]+([][[]]+[])[+[]]+([]+{})[!+[]+!![]+!![]+!![]+!![]]+(!![]+[])[+[]]+([]+{})[+!![]]+(!![]+[])[+!![]]]((!![]+[])[+!![]]+([][[]]+[])[!+[]+!![]+!![]]+(!![]+[])[+[]]+([][[]]+[])[+[]]+(!![]+[])[+!![]]+([][[]]+[])[+!![]]+([]+{})[!+[]+!![]+!![]+!![]+!![]+!![]+!![]]+(![]+[])[!+[]+!![]]+([]+{})[+!![]]+([]+{})[!+[]+!![]+!![]+!![]+!![]]+(+{}+[])[+!![]]+(!![]+[])[+[]]+([][[]]+[])[!+[]+!![]+!![]+!![]+!![]]+([]+{})[+!![]]+([][[]]+[])[+!![]])())[!+[]+!![]+!![]]+([][[]]+[])[!+[]+!![]+!![]])()([][(![]+[])[!+[]+!![]+!![]]+([]+{})[+!![]]+(!![]+[])[+!![]]+(!![]+[])[+[]]][([]+{})[!+[]+!![]+!![]+!![]+!![]]+([]+{})[+!![]]+([][[]]+[])[+!![]]+(![]+[])[!+[]+!![]+!![]]+(!![]+[])[+[]]+(!![]+[])[+!![]]+([][[]]+[])[+[]]+([]+{})[!+[]+!![]+!![]+!![]+!![]]+(!![]+[])[+[]]+([]+{})[+!![]]+(!![]+[])[+!![]]]((!![]+[])[+!![]]+([][[]]+[])[!+[]+!![]+!![]]+(!![]+[])[+[]]+([][[]]+[])[+[]]+(!![]+[])[+!![]]+([][[]]+[])[+!![]]+([]+{})[!+[]+!![]+!![]+!![]+!![]+!![]+!![]]+([][[]]+[])[!+[]+!![]+!![]]+(![]+[])[!+[]+!![]+!![]]+([]+{})[!+[]+!![]+!![]+!![]+!![]]+(+{}+[])[+!![]]+([]+[][(![]+[])[!+[]+!![]+!![]]+([]+{})[+!![]]+(!![]+[])[+!![]]+(!![]+[])[+[]]][([]+{})[!+[]+!![]+!![]+!![]+!![]]+([]+{})[+!![]]+([][[]]+[])[+!![]]+(![]+[])[!+[]+!![]+!![]]+(!![]+[])[+[]]+(!![]+[])[+!![]]+([][[]]+[])[+[]]+([]+{})[!+[]+!![]+!![]+!![]+!![]]+(!![]+[])[+[]]+([]+{})[+!![]]+(!![]+[])[+!![]]]((!![]+[])[+!![]]+([][[]]+[])[!+[]+!![]+!![]]+(!![]+[])[+[]]+([][[]]+[])[+[]]+(!![]+[])[+!![]]+([][[]]+[])[+!![]]+([]+{})[!+[]+!![]+!![]+!![]+!![]+!![]+!![]]+(![]+[])[!+[]+!![]]+([]+{})[+!![]]+([]+{})[!+[]+!![]+!![]+!![]+!![]]+(+{}+[])[+!![]]+(!![]+[])[+[]]+([][[]]+[])[!+[]+!![]+!![]+!![]+!![]]+([]+{})[+!![]]+([][[]]+[])[+!![]])())[!+[]+!![]+!![]]+([][[]]+[])[!+[]+!![]+!![]])(([]+{})[+[]])[+[]]+(!+[]+!![]+!![]+!![]+!![]+!![]+!![]+[])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![]+[]))+([]+{})[+!![]]+(!![]+[])[+!![]]+(![]+[])[!+[]+!![]]+([][[]]+[])[!+[]+!![]]+[][(![]+[])[!+[]+!![]+!![]]+([]+{})[+!![]]+(!![]+[])[+!![]]+(!![]+[])[+[]]][([]+{})[!+[]+!![]+!![]+!![]+!![]]+([]+{})[+!![]]+([][[]]+[])[+!![]]+(![]+[])[!+[]+!![]+!![]]+(!![]+[])[+[]]+(!![]+[])[+!![]]+([][[]]+[])[+[]]+([]+{})[!+[]+!![]+!![]+!![]+!![]]+(!![]+[])[+[]]+([]+{})[+!![]]+(!![]+[])[+!![]]]((!![]+[])[+!![]]+([][[]]+[])[!+[]+!![]+!![]]+(!![]+[])[+[]]+([][[]]+[])[+[]]+(!![]+[])[+!![]]+([][[]]+[])[+!![]]+([]+{})[!+[]+!![]+!![]+!![]+!![]+!![]+!![]]+([][[]]+[])[+[]]+([][[]]+[])[+!![]]+([][[]]+[])[!+[]+!![]+!![]]+(![]+[])[!+[]+!![]+!![]]+([]+{})[!+[]+!![]+!![]+!![]+!![]]+(+{}+[])[+!![]]+([]+[][(![]+[])[!+[]+!![]+!![]]+([]+{})[+!![]]+(!![]+[])[+!![]]+(!![]+[])[+[]]][([]+{})[!+[]+!![]+!![]+!![]+!![]]+([]+{})[+!![]]+([][[]]+[])[+!![]]+(![]+[])[!+[]+!![]+!![]]+(!![]+[])[+[]]+(!![]+[])[+!![]]+([][[]]+[])[+[]]+([]+{})[!+[]+!![]+!![]+!![]+!![]]+(!![]+[])[+[]]+([]+{})[+!![]]+(!![]+[])[+!![]]]((!![]+[])[+!![]]+([][[]]+[])[!+[]+!![]+!![]]+(!![]+[])[+[]]+([][[]]+[])[+[]]+(!![]+[])[+!![]]+([][[]]+[])[+!![]]+([]+{})[!+[]+!![]+!![]+!![]+!![]+!![]+!![]]+(![]+[])[!+[]+!![]]+([]+{})[+!![]]+([]+{})[!+[]+!![]+!![]+!![]+!![]]+(+{}+[])[+!![]]+(!![]+[])[+[]]+([][[]]+[])[!+[]+!![]+!![]+!![]+!![]]+([]+{})[+!![]]+([][[]]+[])[+!![]])())[!+[]+!![]+!![]]+([][[]]+[])[!+[]+!![]+!![]])()([][(![]+[])[!+[]+!![]+!![]]+([]+{})[+!![]]+(!![]+[])[+!![]]+(!![]+[])[+[]]][([]+{})[!+[]+!![]+!![]+!![]+!![]]+([]+{})[+!![]]+([][[]]+[])[+!![]]+(![]+[])[!+[]+!![]+!![]]+(!![]+[])[+[]]+(!![]+[])[+!![]]+([][[]]+[])[+[]]+([]+{})[!+[]+!![]+!![]+!![]+!![]]+(!![]+[])[+[]]+([]+{})[+!![]]+(!![]+[])[+!![]]]((!![]+[])[+!![]]+([][[]]+[])[!+[]+!![]+!![]]+(!![]+[])[+[]]+([][[]]+[])[+[]]+(!![]+[])[+!![]]+([][[]]+[])[+!![]]+([]+{})[!+[]+!![]+!![]+!![]+!![]+!![]+!![]]+([][[]]+[])[!+[]+!![]+!![]]+(![]+[])[!+[]+!![]+!![]]+([]+{})[!+[]+!![]+!![]+!![]+!![]]+(+{}+[])[+!![]]+([]+[][(![]+[])[!+[]+!![]+!![]]+([]+{})[+!![]]+(!![]+[])[+!![]]+(!![]+[])[+[]]][([]+{})[!+[]+!![]+!![]+!![]+!![]]+([]+{})[+!![]]+([][[]]+[])[+!![]]+(![]+[])[!+[]+!![]+!![]]+(!![]+[])[+[]]+(!![]+[])[+!![]]+([][[]]+[])[+[]]+([]+{})[!+[]+!![]+!![]+!![]+!![]]+(!![]+[])[+[]]+([]+{})[+!![]]+(!![]+[])[+!![]]]((!![]+[])[+!![]]+([][[]]+[])[!+[]+!![]+!![]]+(!![]+[])[+[]]+([][[]]+[])[+[]]+(!![]+[])[+!![]]+([][[]]+[])[+!![]]+([]+{})[!+[]+!![]+!![]+!![]+!![]+!![]+!![]]+(![]+[])[!+[]+!![]]+([]+{})[+!![]]+([]+{})[!+[]+!![]+!![]+!![]+!![]]+(+{}+[])[+!![]]+(!![]+[])[+[]]+([][[]]+[])[!+[]+!![]+!![]+!![]+!![]]+([]+{})[+!![]]+([][[]]+[])[+!![]])())[!+[]+!![]+!![]]+([][[]]+[])[!+[]+!![]+!![]])()(([]+{})[+[]])[+[]]+(!+[]+!![]+[])+(+!![]+[]))确实有效,真棒隐式转换18,parseInt(0.0000008)===819,++[[]][+[]]+[+[]]==10强大的隐式转换,2333320,0.1+0.2==0.30.1+0.2==0.3是不正确的。..所以这就是为什么数据库存储都是关于最小货币单位的美分。简单的说,0.1和0.2的二进制浮点表示是不精确的,所以加法不是0.3,而是接近(不等于)0.30000000000000004。因此,在比较数字时,应该有一个公差值。这个公差值是在ES6中预定义的:Number.EPSILON。21、实现数组去重的最短代码[...newSet([1,"1",2,1,1,3])]阿里前不久面试问过这个问题,哈哈,所以我也写了it22.用最短的代码实现一个数组Array(6).fill(8),长度为m(6),值全为n(8)。这已经够短了。好像是在哪里看到的面试题。刚想到ES6的一些API23,短路表达式条件判断vara=b&&1//等价于if(b){a=1}else{a=b}vara=b||1//相当于if(b){a=b}else{a=1}24.JavaScript版迷宫逃脱迷宫,233325.取出一个数组中的最大值和最小值varnumbers=[5,458,120,-215,228,400,122205,-85411];varmaxInNumbers=Math.max.apply(Math,numbers);varminInNumbers=Math.min.apply(Math,numbers);26.将argruments对象转换为数组varargArray=Array.prototype.slice.call(参数);orES6:varargArray=Array.from(arguments)27.javascript高逼格的Function构造函数很多JavaScript教程告诉我们不要直接使用内置对象的构造函数来创建基础变量,比如var的写法arr=新数组(2);应该换成vararr=[1,2]的写法;但是,Function构造函数(注意大写的Function)有点特殊。Function构造函数接受的参数中,第一个是要传入的参数名,第二个是函数中的代码(用字符串表示)。varf=newFunction('a','alert(a)');f('颚');//将弹出一个窗口来显示jawil。这种方式可以根据传入字符串的内容创建一个函数。它高吗?优越的?!28.从数组中找一个数,O(n)算法,找不到返回null。正常版本:functionfind(x,y){for(leti=0;if(f))(f=>(next=>(x,y,i=0)=>(i>=x.length)?null:(x[i]==y)?i:next(x,y,i+1))((...args)=>(f(f))(...args)))letarr=[0,1,2,3,4,5]console.log(查找(arr,2))控制台。日志(查找(arr,8))