javascript中各种风骚的代码

1.判断数值符号是否相同

c 复制代码
	function numericSymbolsIsEqual(x: number, y: number): boolean {
	  return (x ^ y) >= 0
	}
	console.log(numericSymbolsIsEqual(1, 1))
	console.log(numericSymbolsIsEqual(-1, 1))
	console.log(numericSymbolsIsEqual(1, -1))
	console.log(numericSymbolsIsEqual(-1, -1))

输出如下

判断一个数n是否为2的整数幂

代码部分

ts 复制代码
	function isPowerOfTwo(n: number): boolean {
	  return (n & (n - 1)) === 0
	}
	console.log(isPowerOfTwo(4))
	console.log(isPowerOfTwo(5))
	console.log(isPowerOfTwo(6))
	console.log(isPowerOfTwo(1024))
	console.log(isPowerOfTwo(1021))

输出如下

星级评分

ts 复制代码
enum Score {
  veryPoor = 1,
  poor,
  ordinary,
  good,
  veryGood
}
function starRating(n: Score): string {
  return '★★★★★☆☆☆☆☆'.slice(5 - n, 10 - n)
}
console.log(starRating(Score.veryPoor))
console.log(starRating(Score.poor))
console.log(starRating(Score.ordinary))
console.log(starRating(Score.good))
console.log(starRating(Score.veryGood))

输出如下

0和1切换

typescript 复制代码
	function toggle(n: number): number {
	  return n ^= 1
	}
	console.log(toggle(1))
	console.log(toggle(1))
	console.log(toggle(0))
	console.log(toggle(0))
	console.log(toggle(1))

浮点数向下取整

typescript 复制代码
	function roundDownDoubleNon(n: number): number {
	  return ~~n
	}
	function roundDownRightShift(n: number): number {
	  return n >> 0
	}
	function roundDownLeftShift(n: number): number {
	  return n << 0
	}
	function roundDownOr(n: number): number {
	  return n | 0
	}
	console.log(roundDownDoubleNon(Math.PI))
	console.log(roundDownRightShift(Math.PI))
	console.log(roundDownLeftShift(Math.PI))
	console.log(roundDownOr(Math.PI))

x乘2的y次幂

typescript 复制代码
	function getTwoYPower(x: number, y: number): number {
	  return x << y
	}
	
	// 输出1乘2的2次方
	console.log(getTwoYPower(1, 2))
	// 输出2乘2的3次方
	console.log(getTwoYPower(2, 3))
	// 输出3乘2的2次方
	console.log(getTwoYPower(3, 2))

让天底下的代码再也没有bug

typescript 复制代码
	try {
	  //code
	} catch (error) {
	  location.href = `https://baidu.com/esarch?q=js+${error.message}`
	}

这个就不做演示啦哈

相关推荐
维吉斯蔡37 分钟前
【VS Code / Cursor】文件夹右键快捷打开与文件类型自动关联
开发语言·程序人生·学习方法
猫猫不是喵喵.2 小时前
Vue3 Props 属性
前端·javascript·vue.js
luj_17683 小时前
星火科技助力边远地区防病攻坚
c语言·开发语言·c++·经验分享·算法
always_TT3 小时前
【Python 日志记录:logging 模块入门】
开发语言·python·php
xcLeigh3 小时前
Go入门:变量声明的五种方式详解
java·开发语言·golang
zmzb01034 小时前
C++课后习题训练记录Day175
开发语言·c++
脱胎换骨-军哥4 小时前
C++ 代码规范与格式化指南
开发语言·c++·代码规范
枕星而眠5 小时前
C++ STL Map容器完全指南:从有序红黑树到无序哈希表
java·开发语言
爱吃牛肉的大老虎6 小时前
Rust对象之结构体,枚举,特性
开发语言·后端·rust
bbq粉刷匠6 小时前
HashMap 底层原理深度拆解(二):putVal 完整链路解析(懒加载 · 链表遍历 · 尾插法)
java·开发语言·哈希算法