【JS】前端编程8个小技巧(一)

文章目录

  • 1.判断两个数是不是符号相同
    • 函数书写
    • 运算结果
  • 2.判断一个数n是不是2的整数次幂
    • 函数书写
    • 运算结果
  • 3.倒序遍历简写
    • 函数书写
    • 运算结果
  • 4.快速得到一个星级评分
    • 函数书写
    • 运算结果
  • 5.在程序抛出异常时快速切换搜索引擎
    • stackoverflow的人机验证界面
    • 函数书写
    • 示例
    • 检索结果
      • stackoverflow检索结果
      • 知乎检索结果
      • Quora 检索结果
      • GitHub 检索结果
  • 6.让数字在1和0之间来回切换
    • 函数书写
    • 运算结果
  • 7.求一个数的整数部分的几种写法
    • 函数书写
    • 运算结果
  • 8.得到一个数乘以2的n次幂
    • 函数书写
    • 运算结果


1.判断两个数是不是符号相同

函数书写

/**
 * 判断两个数是不是符号相同
 * @param {number} a
 * @param {number} b
 * @return {string}
 */
function checkSymbol(a,b){
  if((a ^ b) >= 0){
    return '符号相同';
  }
  else{
    return '符号不同';
  }
}
console.log(checkSymbol(-3,5));//符号不同
console.log(checkSymbol(-3,-5));//符号相同
console.log(checkSymbol(3,5));//符号相同
console.log(checkSymbol(3,-5));//符号不同

运算结果

符号不同
符号相同
符号相同
符号不同

2.判断一个数n是不是2的整数次幂

函数书写

/**
 * 判断一个数n是不是2的整数幂
 * 如果n &(n-1) 等于 0, n是2的整数幂
 * @param {number} n
 * @return {boolean}
 */

function isPowerOf2(n){
  return (n & (n - 1)) === 0;
}
console.log(isPowerOf2(4));//true
console.log(isPowerOf2(15));//false
console.log(isPowerOf2(16));//true
console.log(isPowerOf2(256));//true
console.log(isPowerOf2(250));//false

运算结果

true
false
true
true
false

3.倒序遍历简写

函数书写

/**
 * 倒序遍历简写
 * @param {Array} arr
 */
function readDesc(arr){
  // 倒序遍历
  for(let i = arr.length - 1; i >= 0; i--){
    //console.log(arr[i]);
  }
  // 可简写为
  for(let i = arr.length; i--;){
    console.log(arr[i]);
  }
}

readDesc([1,2,3,4,5,6,7,8]);

运算结果

8
7
6
5
4
3
2
1

4.快速得到一个星级评分

函数书写

/**
 * 快速得到一个星级评分
 * @param {number} r
 * @return {string}
 */
function rate(r) {
  return '★★★★★☆☆☆☆☆☆'.slice(5 - r, 10 - r);
}

console.log(rate(0));//☆☆☆☆☆
console.log(rate(1));//★☆☆☆☆
console.log(rate(2));//★★☆☆☆
console.log(rate(3));//★★★☆☆
console.log(rate(4));//★★★★☆
console.log(rate(5));//★★★★★

运算结果

☆☆☆☆☆
★☆☆☆☆
★★☆☆☆
★★★☆☆
★★★★☆
★★★★★

5.在程序抛出异常时快速切换搜索引擎

使用https://stackoverflow.com/search?q=进行问题检索时,需要进行人机验证,如果没有出现人机验证页面,肯能你大概率是遇到了,此时你可以使用梯子或者别的搜索引擎进行问题检索。

以下是常用的检索地址,其中%s是需要替换的关键字。

  • 知乎: https://www.zhihu.com/search?type=content&q=%s
  • Quora: https://www.quora.com/search?q=%s
  • Github: https://github.com/search?q=%s
  • stackoverflow: https://stackoverflow.com/search?q=%s

stackoverflow的人机验证界面

【JS】前端编程8个小技巧(一)_第1张图片

函数书写

function demo1() {
  try{
    // any code
  } catch (e) {
    location.href = `https://stackoverflow.com/search?q=js+${e.message}`;
  }
}

示例

function demo1() {
  try{
    // any code
    let n = 0;
    let v = 1/n;
    console.log(v.length.Array);
  } catch (e) {
    location.href = `https://stackoverflow.com/search?q=js+${e.message}`;
  }
}
demo1();

检索结果

stackoverflow检索结果

【JS】前端编程8个小技巧(一)_第2张图片

知乎检索结果

【JS】前端编程8个小技巧(一)_第3张图片

Quora 检索结果

【JS】前端编程8个小技巧(一)_第4张图片

GitHub 检索结果

【JS】前端编程8个小技巧(一)_第5张图片


6.让数字在1和0之间来回切换

函数书写

/**
 * 让数字在1和0之间来回切换
 */
function demo2(){
  let toggle = 0;
  toggle ^= 1; // toggle: 1
  console.log(toggle);
  toggle ^= 1; // toggle: 0
  console.log(toggle);
  toggle ^= 1; // toggle: 1
  console.log(toggle);
}
demo2();

运算结果

1
0
1

7.求一个数的整数部分的几种写法

函数书写

/**
 * 求一个数的整数部分的几种写法(一)
 * 使用双取反或按位非(Bitwise NOT)
 * @param {Number} d
 * @returns {Number}
 */
function mod1(d) {
  return  ~~ d ;
 }
 
/**
 * 求一个数的整数部分的几种写法(二)
 * 使用右移位运算符(Right Shift)
 * @param {Number} d
 * @returns {Number}
 */
function mod2(d) {
  return d >> 0;
 }

 /**
 * 求一个数的整数部分的几种写法(三)
 * 使用左移位运算符(Left Shift)
 * @param {Number} d
 * @returns {Number}
 */
function mod3(d) {
  return d << 0;
 }

 /**
 * 求一个数的整数部分的几种写法(四)
 * 使用按位或运算符(Bitwise OR)
 * @param {Number} d
 * @returns {Number}
 */
function mod4(d) {
  return d | 0; 
 }

 console.log(mod1(3.14));// 3
 console.log(mod2(3.14));// 3
 console.log(mod3(3.14));// 3
 console.log(mod4(3.14));// 3

运算结果

3
3
3
3

8.得到一个数乘以2的n次幂

函数书写

/**
 * 得到一个数乘以2的n次幂
 * @param {Number} n
 * @returns {Number}
 */
function power2(n) {
  return 1 << n ;
 }

 console.log(power2(2));// 4
 console.log(power2(3));// 8
 console.log(power2(4));// 16

运算结果

4
8
16

你可能感兴趣的:(语言-HTML,前端,javascript,开发语言,快速跳转搜索引擎,小技巧)