JavaScript编程语法,算法 小技巧

本文介绍了JavaScript中的多种实用技巧,包括布尔值转换、字符串转数字、数组操作、条件运算符等,还探讨了如何判断变量类型及一些特殊操作符的用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用 !! 操作符转换布尔值
    常用的情况:值为 0null" "undefinedNaN 使用 !! 返回的是  false,可以用来判断值是否有效值
字符串 =》 数字
    方法1:使用+将字符串转换成数字 
            console.log(+new Date()) // 1461288164385
    方法2:使用*1将字符串转换为数字
字符串=》数组
    方法1:string.split(',')
    方法2:[...string]
并条件符 ||运算符
    条件和所要执行的结果放在一起

             isTrue && login();

    需要有一个默认值的时候,||运算,

            this.age = age || 27;
在循环中缓存不必要的循环计算
            arr.length
            在每一次循环中都是不变的,不需要每次求取arr的长度
合并数组
        var array1 = [1,2,3,4];
        var array2 = [4,5,6,7]; 
        console.log(array1.push.apply(array1, array2)); 
        这种方法不是用来创建一个新的数组,其只是将第一个第二个数组合并在一起,同时减少内存的使用,但这种方法改变了原数组array1
如何判断一个变量是对象还是数组?
    function isObjectOrArrary(value){
        if(Object.prototype.toString().call(value) === '[object arrary]'){
            console.log('value是数组');
        }else if(Object.prototype.toString.call(value)==='[object Object]'){
            console.log('value是对象');
      }else{
          console.log('value不是数组也不是对象')
      }
    }
    Object.prototype.toString和Array.toString()是两回事?

        因为Array.toString这个重写了父类的toString()?Object.prototype.toString是输出类型的?
ES5的继承和ES6的继承有什么区别?
    es5的继承实际上是通过prototype和构造函数机制实现的,简单来说,就是创建一个子类的实例对象,然后把父类的方法绑定在this上     Parent.apply(this))。
    es6的继承是通过class声明一个类,通过extends继承父类的,子类必须在constructor函数中调用super方法,继承父亲的this对象,
数组去重
    1、Set结构去重。
    2、filter
typeOf操作符汇总
数据类型代码结果
Booleantypeof true'boolean'
stringtypeOf 'aa''string'
NumbertypeOf 5'number'
undefinedtypeOf undefined'undefined'
nulltyoeOf null'object'
ArrarytypeOf [1,2]'object'
FunctiontypeOf function()'function'
SymboltypeOf Symbol()'symbol'
   在使用了一个他人提供的对象,但又想为这个对象添加新的属性和方法,新方法和属性的名字就有可能与现有方法和属性产生冲突,ES6 引入Symbol根本上防止属性名的冲突。
 作为属性名的 Symbol 
        let a = {};
        a[mySymbol] = 'Hello!'; //Symbol 值作为对象属性名时,不能用点运算符。
 更多的symbol知识,查看[symbol](http://es6.ruanyifeng.com/#docs/symbol)
javascript中的逗号运算符
逗号运算符的作用是将若干表达式连接起来。  
它的优先级别在所有运算符中是最低的,结合方向是"自左至右"的。  
//逗号运算符 取最右返回值
a = void(b =5 , c = 7 , d =56) //a = undefined  
void 是 JavaScript 中非常重要的关键字,  
该操作符指定要计算一个表达式但是不返回值。
     var i,j,k;
     for( i = 0 , j = 0; i < 2 , j < 4; i++ , j++ ) {
         k = i+j;
     }
     document.write(k); //4
    解释:i = 0, j = 0 => k = 0
         i = 1, j = 1 => k = 2
         i = 2, j = 2 => k = 4
         i = 3, j = 3 => k = 6
        可以运行到i =3 ,主要是逗号运算符,执行前面的表达式,  
        但是,结果是返回最右边的值
typeof和instanceof的区别
    var arr = [];
    typeof(arr); //object
    console.log(arr instanceof Object) //true
    console.log(arr instanceof Arrary) //true
抛出异常
1、throw new Error('异常') 
//一般用于终止程序和返回错误提示
2、try{

}catch(e){
    alert(e.message); // 补货的异常,代码异常
}
在功能块中封装JavaScript源文件的全部内容的重要性和原因是什么?
1、这种技术在文件的全部内容周围创建一个闭包,创建一个私有名称空间,    
从而有助于避免不同JavaScript模块和库之间的潜在名称冲突。
2、另一个特点是为全局变量提供一个容易引用(可能更短)的别名
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值