<option id="tpnx7"><p id="tpnx7"><pre id="tpnx7"></pre></p></option>
<output id="tpnx7"></output>
<output id="tpnx7"><ruby id="tpnx7"></ruby></output>
    <output id="tpnx7"></output><acronym id="tpnx7"><button id="tpnx7"><div id="tpnx7"></div></button></acronym><code id="tpnx7"><menuitem id="tpnx7"></menuitem></code>

    首页 > 上网技巧 > 电脑小技巧 > js中实现getter和setter函数方法及运算符的特殊...

    js中实现getter和setter函数方法及运算符的特殊用法

    时间:2018-12-27 09:59 作者:QQ地带 我要评论

    1.getter与setter
    javascript的大部分东西是简化了的。这里我们假设有一个student对象,并且我们用student.age来访问它的age属性,如果此时定义了age属性,我们就会得到它的值,如果没有,我们就会得到undefined。
     
    但是我们?#37096;?#20197;编写自定义的getter和setter函数来获取我们的想要的东西,而不是直接返回对象的值,设置值的时候也是一样。这样我们就可以实现更多复杂的获取和设置字段的功能,如虚拟字段,字段验证,副作用等,ES6中添加了更加方便的语法?#38382;健?/div>
     
    getter简单说来就是一种获得属性值的方法,setter简单说来就是一种设置属性值的方法
    getter负责查询值,它不带任何参数,setter则负责设置键值,值是以参数的?#38382;?#22312;内部传递。
    //isNaN() 函数用来确定一个值是否为NaN ,即判断该值是否为一个非数字。
     
    const student = {
        firstName: 'job',
        lastName: 'jark',
     
        get fullName() {
            return this.firstName + ' ' + this.lastName;
        },
     
        set age(value) {
            if (isNaN(value)) throw Error("It has been a bumber");
            this_age = Number(value)
        },
        get age() {
            return this_age
        }
    };
    console.log(student.firstName);
    student.firstName = 'jerry';
    console.log(student.fullName);
    student.age = '21';
    console.log(student.age);
    student.age = 'error';
     
    2.运算符
     1.逗号运算符
     
    通常逗号运算符用于在一行编写多个语句,或者在for循环中使用,?#28909;?/div>
     
    var a,b,n = 6;
    for(a = 0,b = 0;a <= n&&b<=n;a++,b++) {
    }
    function  calculate() {
        return a++,console.log(a),a;
    }
    我们还可以用它在一行中编写有逗号分隔的多个表达式,,并返回最后一个表达式的结果。
     
    //通过var定义的变量,作用域是整个封闭函数,是全域的 。通过let定义的变量,作用域是在块级或是子块中。
     
    let result = number1,number2,...,numberN;
     
     
    2.!!运算符
     
    他的效果与使用两次的js否定运算符的作用是一致的。!!是将任何表达式转化为?#32423;?#31867;型的表达式的相对较优的运算符。
     
    同样的,如果表达式的返回值为真值,则返回true,否则则返回false。
     
    !!null         //returns false
    !!undefined   //returns false
    !!false        //returns false
    !!true         //returns true 
    !!""           //returns false
    !!"somestring" //returns true
    !!0        //returns false
    !!1        //returns true
    !![]        //returns true
    !!{}        //returns true
     
    3.+运算符
     
    +运算符能够快速的将字符串转化为数字,只需要在字符串前面加上+号即可,+运算符还适用于负数,八进制,十六进制和指数,可以将date或者Moment.js对象转化为时间戳。
     
    //时间戳(timestamp),一个能表示一份数据在某个特定时间之前已经存在的、 完整的、 可验证的数据,通常是一个字符序列,唯一地标识某一刻的时间。
     
    + '3.11'     //returns 3.11
    + '-4'        //returns -4
    + '0xFF'      //returns 255
    + true        //returns 1
    + '123e-5'   //returns 0.00123
    + false      //returns 0
    + null        //returns 0
    + 'Infinity' //returns Infinity
    +'1,234'     //returns Nan
    +dateObject   //returns 1542975502981
    +momentObject //returns 1542975502981
     
     
    4.~运算符
     
    位运算符一般使用的很少,当他与数字一起使用的时候,?#28909;鐍N => -(N+1),这个式子仅当 N == -1 的时候结果为0。
     
    我们可以在indexof(..)函数前面加一个~来进行?#32423;?#26816;查,检查一个项是否存在于Array或者string中。
     
    let userName = 'break jerry'
     
    if(~userName.indexOf("break")) {
        console.log('access denied');
    }else {
        console.log('access granted');
    }

    标签: JS
    顶一下
    (0)
    0%
    踩一下
    (0)
    0%

    Google提供的广告

    广东十分快乐开奖结果
    <option id="tpnx7"><p id="tpnx7"><pre id="tpnx7"></pre></p></option>
    <output id="tpnx7"></output>
    <output id="tpnx7"><ruby id="tpnx7"></ruby></output>
    <output id="tpnx7"></output><acronym id="tpnx7"><button id="tpnx7"><div id="tpnx7"></div></button></acronym><code id="tpnx7"><menuitem id="tpnx7"></menuitem></code>

    <option id="tpnx7"><p id="tpnx7"><pre id="tpnx7"></pre></p></option>
    <output id="tpnx7"></output>
    <output id="tpnx7"><ruby id="tpnx7"></ruby></output>
    <output id="tpnx7"></output><acronym id="tpnx7"><button id="tpnx7"><div id="tpnx7"></div></button></acronym><code id="tpnx7"><menuitem id="tpnx7"></menuitem></code>

    广东十一选五任三推荐 刮刮乐富贵8中奖演示 云南十一选五开奖走 22选5复式7个号多少钱 广东好彩1最新开奖结果查询 山东十一选五任一规则 彩票2345图表走势 上海时时乐历史数据 宁夏十一选五爱乐彩 精准定胆公式99 7星彩每周几开奖 创富公式规律 福建11选5开奖结果 香港官方一码中特 体彩江苏7位数开奖结果18172