• js之运算符其它运算符(三元运算符,逗号运算符,void运算符,typeof,delete运算符)


      Javascript支持很多其它的运算符,具体如下:

      一、条件运算符(?:)

        条件运算符是Javascript中唯一的三个操作数的三元运算符,有时会直接称做是“三元运算符”。

        基本格式:condition ? expr1 : expr2

        执行流程::condition为true,返回expr1,conditioin为false,返回expr2

        三元运算符的操作数可以是任意的类型,其实用if语句也会带来同样的效果,三元运算符只是提供了一种简写形式。

        事实上,三元运算符可以扩展使用,当设置的条件成立或者是不成立时,执行语句都可以不止一句,如下:condition?(expr1).(expr2) : (expr3).(expr4) 多个执行语句用"."连接,这样它的功能更像if...else流程语句上靠近了。

        同时它还可以嵌套使用,但嵌套使用的可读性不好,不利于后期的一个维护,不建议使用。

        <script>
            //求a,b,c三值中的最大值
            let a = 10, b = 12, c = 19; //要注意a,b,c类型要相同
    
            let max1 = (a > b) ? a : b;
            let max2 = (max1 > c) ? max1 : c;
            console.log(max2); //19
    
            let max = ((a > b) ? a : b) > c ? ((a > b) ? a : b) : c;
            console.log(max); //19
    
            if (a > b && a > c) {
                max = a;
            } else if (b > a && b > c) {
                max = b;
            } else {
                max = c;
            }
            console.log(max);//19
        </script>

       二、逗号运算符

        逗号运算符是二元操作符,它的操作数可以是任意类型。它首先计算左边操作数,然后计算右边操作数,最后返回右操作数的值,用逗号运算符可以在一条语句中执行多个运算。

        逗号运算符常用于声明多个变量。最常用的场景是在for循环中,这个循环通常具有多个循环变量。它还可以用于赋值,在用于赋值时,逗号运算符总是返回表达式中的最后一项。

        <script>
            let a = 0, b = 2, c = 5;
            //等价于:let a = 0;b = 2;c = 5;
            let num = (1, 2, 3, 4, 5);//不能去掉括号
            console.log(num);
        </script>

      三、圆括号运算符

        也叫做分组运算符,它有两种用法:表达式放在圆括号中作用是求值,跟在函数后面的作用就是调用函数

        <script>
            //把表达式放在圆括号之中,将返回表达式的值
            console.log(('a')); //a
            console.log((1 + 9));  //10
    
            //把对象放在圆括号之中,会返回对象本身
            let n = { a: 1 };
            console.log((n));//{a:1}
    
            //把函数放在圆括号中,会返回函数本身
            function fn() {
                return 1;
            }
            console.log((fn));  //function fn(){retrun 1;}
            console.log(fn());  //1
            //由于圆括号的作用是求值,如果将语句放在圆括号中,会报错,圆括号运算符不能为空
    </script>

      四、void运算符

        void是一元运算符,它出现在操作数之前,操作数可以是任意类型,这个运算符并不经常的使用,操作数会照常计算,但忽略计算结果且返回undefined。由于void会忽略操作数的值,所以在操作数具有副作用的时候使用void来让程序更具语义。

        这个运算符最常用在客户端URL——javascript:URL中,在URL中可以写带有副作用的表达式,而void则让浏览器不必显示这个表达式的计算结果。例如,经常在HTML代码中的<a>标签里使用void运算符。   

    <a href="javascript:void window.open();">打开一个新窗口</a>

       五、delete运算符

        delete是一元运算符,它用来删除对象属性或者数组元素。它是用于做删除操作的。需要注意的是,删除属性或者删除数组元素不仅仅是设置了一个undefined的值,当删除一个属性时,这个属性将不会存在,读取一个不存在的属性将返回undefined,但是可以通过in运算符来检测这个属性是否在对象中存在。

      delete希望它的操作数是一个左值,如果不是左值那么将不进行任何操作返回true。否则delete将试图删除这个指定的左值,如删除成功,delete将返回true。

      需要强调的一点是并不是所有的属性都是可以删除的,一些内置的核心和客户端属性是不能删除的,用户通过var语句声明的变量也是不能删除的,同样通过function语句定义的函数和函数参数也是不能删除的。

        <script>
           let n = {
                x: 1,
                y: 2
            }
            console.log(delete n.x);     //true  删除一个对象的属性,返回true
            console.log(typeof n.x);    //undefined 属性不存在时,返回undefined
            console.log(delete n);     //false 不能删除通过var声明的变量
        </script>

      六、typeof运算符

        typeof是一个一元运算符,放在其单个操作数的前面,操作数可以是任意类型。返回值为表示操作类型的一个字符串。对不同的操作数,它返回不同的结果。

        <script>
            //对于数字类型,typeof返回的值是number
            console.log(typeof (1));//number
            console.log(typeof (NaN));//number
    
            //对于字符串类型,typeof返回的值是string
            console.log(typeof ("string"));//string
    
            //对于布尔值,typeof返回的值是Boolean
            console.log(typeof (true));//true
    
            //对于对象、数组、null 返回的值是 object
            console.log(typeof (window));//object
            console.log(typeof (null));//object
    
            //对于函数类型,返回的值是 function
            console.log(typeof (Date));//function
            //如果运算数是没有定义的(比如说不存在的变量、函数或者undefined),将返回undefined
            console.log(typeof (undefined));//undefined
        </script>

       七、其它 (运算符的优先级)  

        一元运算符 > 算术运算符 > 比较运算符 > 逻辑运算符 > 三元运算符 > 赋值运算符 > 逗号运算符

        中括号,小括号,点属于同一级别,它们有最高的优先级,如果不确定先算谁,可以给要算的内容加上小括号,提升其优先级。

    <script>
        let a={
            b:10
        }
        let c=[20,30,40];
        console.log(a.b+c[1]); //40
    </script>

     

  • 相关阅读:
    hdu 1077计算几何
    hdu 1110几何题
    hdu 4430二分枚举
    numpy常用技巧
    python中数组(list/array)不会复制,而是直接引用
    怎么在ASP.NET 2.0中使用Membership
    2分法通用存储过程分页(top max模式)版本(性能相对之前的not in版本极大提高)
    Oracle大数据量分页通用存储过程
    JavaScript 对象与数组参考大全
    ajax框架比较
  • 原文地址:https://www.cnblogs.com/davina123/p/11809914.html
Copyright © 2020-2023  润新知