JS里面的一元加号操作符

1.转换为时间戳

<p>
        <label>getTime:</label><input id="getTime" type="text" readonly value=""/>
    </p>
    <p>
        <label>valueOf:</label><input id="valueOf" type="text" readonly value=""/>
    </p>
    <p>
        <label>unaryPlus +:</label><input id="unaryPlus" type="text" readonly value=""/>
    </p>
    <p>
        <label>now:</label><input id="now" type="text" readonly value=""/>
    </p>

        var now = new Date(),
            now_time = Date.now();
        var getTime=document.getElementById("getTime"),
            unaryPlus=document.getElementById("unaryPlus"),
            valueOf=document.getElementById("valueOf"),
            onow=document.getElementById("now");
        onow.value= now_time;
        getTime.value=now.getTime();
        unaryPlus.value= +now;
        valueOf.value= now.valueOf();

        console.log(now.getTime() === now.valueOf())//true
        console.log(now.getTime() === +now)//true
        console.log(now.getTime() === now_time)//true

对于用+转换和原生转换性能查看:http://jsperf.com/gettime-vs-unaryplus

2.强制为数字

+true //1
+null //0
+"" //0
+"3.0" //3
+"4.2" //4.2
特殊:
+"3asdf"  //NAN
parseInt("02a2sdf", 10)  //2

举例:
20 + "15" //2015
20 + +"15" //35
 
时间: 2024-10-22 05:17:38

JS里面的一元加号操作符的相关文章

js函数前面的加号,叹号

+function(){}(); 这里的加号,也可以替换成!,~等其他一元操作符,其效果相当于: (function() { console.log("Foo!"); })(); // or (function() { console.log("Foo!"); }()); 如果没有这个加号的话,解析器会认为function是一个函数声明的开始,而后面()将会导致语法错误.在function前面加上+号时,就变成了一个函数表达式,而函数表达式后面又添加了一个()就变成

js中的一元加法和一元减法

大多数人都熟悉一元加法和一元减法,它们在 ECMAScript 中的用法与您高中数学中学到的用法相同. 一元加法本质上对数字无任何影响: 1 var iNum = 20; 2 iNum = +iNum; 3 alert(iNum); //输出 "20" 这段代码对数字 20 应用了一元加法,返回的还是 20. 尽管一元加法对数字无作用,但对字符串却有有趣的效果,会把字符串转换成数字. 1 var sNum = "20"; 2 alert(typeof sNum);

JS 数据类型入门与typeof操作符

标准的数据类型划分: 基本类型: number(数字).string(字符串).undefined.boolean(布尔值).null(空对象) //空对象与非空对象,最大的区别就是不能进行属性操作 对象类型(复合类型): object (对象) 对象类型中并没有函数,函数不属于数据: typeof操作符: 是用来检测变量的数据类型,对于值或变量使用typeof操作符会返回如下字符串.代码如下 var nub = 10 ; console.log(typeof nub); // number 数

js面向对象一(in操作符)

hasOwnproperty()  方法验证属性是存在于对象中,还是存在于实例中.  name in Object 始终返回true. hasPrototypeProperty()方法    实例中重写属性后,属性就存在于实例中,原型中的属性就用不到了. 枚举(不明白)  得到所有可枚举的实例属性  Object.keys()方法 Object.getOwnPropertyNames()方法   得到所有实例属性,无论是否可枚举 原文地址:https://www.cnblogs.com/tu-f

JavaScript系列文章:自动类型转换-续

在上一篇文章中,我们详细讲解了JavaScript中的自动类型转换,由于篇幅限制,没能覆盖到所有的转换规则,这次准备详细讲解一下. 上次我们提到了对象类型参与运算时转换规则: 1). 在逻辑环境中执行时,会被转换为true 2). 在字符串环境和数字环境中,它的valueOf()方法和toString()方法会依次被调用,然后根据返回值进行再次转换.首先,valueOf()方法会被调用,如果其返回值是基础类型,则将这个返回值转为目标类型,如果返回值不是基础类型,则再试图调用toString()方

javascript中的一元操作符

题目如下: var s1 = "01"; var s2 = "1.1"; var s3 = "z"; var b = false; var f = 1.1; var = { valueOf: function() { return -1; } }; s1= -s1; //-1 s2 = -s2; //-1.1 s3 = -s3; //NaN b = -b; //0 f = -f; //-1.1 o = -o; //1 解释: 在对非数值应用一元加

操作符-一元操作符

只能操作一个值的操作符叫一元操作符. 1.递增和递减操作符: 递增和递减都有两个版本:前置型和后置型. 前置型: 在执行前置的递增和递减操作时,变量的值都是在语句被求值前改变的.(在计算机科学领域,这种情况通常被称做副效应). var age=29; var anotherAge=--age+2; alert(age);//28 alert(anotherAge);//30 前置递增和递减操作与执行的语句的优先级相等,因此整个语句会从左至右被求值. var num1=2; var num2=20

js语法概述

# 语法概述 ## JavaScript的引入方式 1. 直接在`script`标签内部书写代码 ```html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script type="text/javascript"> console.log('hello, world'); </s

JS基础知识回顾:ECMAScript的语法(三)

ECMA-262描述了一组用于操作数据值的操作符,包括算术操作符.位操作符.关系操作符和相等操作符. ECMAScript操作符的与众不同之处在于,他们能够适用于很多值,例如字符串.数字值.布尔值.甚至是对象. 在将这些操作符应用于对象时,相应的操作符通常都会调用对象的valueOf()和(或)toString()方法,以便取得可以操作的值. 只能操作一个值的操作符叫做一元操作符. 递增和递减操作符直接借鉴自C,各有前置型和后置型两个版本:a++.++a.a--.--a 这四种操作符不仅适用于整