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

解释:

在对非数值应用一元加操作符时,该操作符会像Number转型函数一样对这个值执行转换。换句话说,布尔值false和true将被转换为0和1,字符串值会被按照一组特殊的规则进行解析,而对象是先调用它们的valueOf()和toString()方法,再转换得到值

时间: 2024-10-11 00:24:46

javascript中的一元操作符的相关文章

为什么不要在 JavaScript 中使用位操作符?

如果你的第一门编程语言不是 JavaScript,而是 C++ 或 Java,那么一开始你大概会看不惯 JavaScript 的数字类型.在 JavaScript 中的数字类型是不区分什么 Int,Float,Double,Decimal 的.咳咳,我说的当然是在 ES6 之前的 JS,在 ES6 的新标准中提出了像 Int8Array 这样新的数据类型.不过这不是本文叙述的重点,暂且就不谈啦.本文将更着重地谈 JS 的数字类型以及作用于它的位操作符,而关于包装对象 Number 的更多了解可以

PHP和Javascript中的逻辑操作符&&和||的比较

几乎所有的语言都有&&(且)和||(或)的逻辑操作符,&&用于判断多个表达式的时候,如果为真(true),则继续判断下一个表达式,如果为假(false),则停止表达式解析,即只有当所有表达式都为真(true),才返回真(true),如果某一个表达式为假(false),则结果就(false):而||(或)恰好相反,也是对多个表达式依次判断,如果表达式为真(true),则终止表达式的逻辑判断,其结果为真(true).这两个逻辑操作符都存在短路这个行为: &&判断

通过例子深入理解javascript中的new操作符

1.首先看一道题目 1 function Cat(name,age){ 2 this.name=name; 3 this.age=age; 4 } 5 console.log(new Cat('miaomiao',18)); 6 //Cat {name: "miaomiao", age: 18} 2.那么这里面的this指的是什么呢 1 function Cat(name,age){ 2 console.log(this);//Cat {} 3 this.name=name; 4 th

JavaScript中的typeof操作符用法实例

在Web前端开发中,我们经常需要判断变量的数据类型.鉴于ECMAScript是松散类型的,因此需要有一种手段来检测给定变量的数据类型——typeof就是负责提供这方便信息的操作符. 对一个值使用typeof操作符可能返回下列某个字符串: “undefined”——如果这个值未定义“boolean”——如果这个值是布尔值“string”——如果这个值是字符串“number”——如果这个值是数值“object”——如果这个是对象或null“function”——如果这个值是函数 常用的typeof操

javascript中神奇的(+)加操作符

javascript是一门神奇的语言,这没神奇的语言中有一个神奇的加操作符. 常用的加操作符我们可以用来做: 加法运算,例如:alert(1+2); ==>3 字符串连接,例如:alert(“a”+”b”);==>”ab” 高级一点的还有“+=”,也是做以上两种操作的. 昨天在javascript丛林群里问了问题:怎么把“2000-09-11 19:22”这个日期格式字符串转换成毫秒数? 斩梦人天天马上回答我: +new Date(‘2000-09-11 19:22′),试了一下不行,正确的应

JavaScript中逻辑操作符“==”与“===”的区别

Summary JavaScript中,逻辑操作符“===”会先检查操作数的数据类型,对不同的数据类型会返回false. 而“==”对不同类型的操作数进行比较时,会进行类型转换后再比较. Description 在JavaScript中进行判断的两种逻辑操作符: == (相等) === (严格相等/全等) 由于JavaScript是弱类型的脚本语言(weakly typed),用于作比较的两个操作数的类型允许不一致.而这两个逻辑操作符最大的区别在于对操作数类型的容忍度. 即:如果两个操作数的数据

javaScript中__proto__与prototype的区别与联系

[转]javaScript中__proto__与prototype的区别与联系 2014-5-4阅读490 评论0 最近在学习javascript的原型,发现了__proto__与prototype,学问很大,于是研究了一下. 首先解释一下什么是原型? 原型是一个对象,其他对象可以通过它实现属性继承. 对象又是什么呢? 在javascript中,一个对象就是任何无序键值对的集合,如果它不是一个主数据类型(undefined,null,boolean,number,array,string),那它

JavaScript中的原型和继承

请在此暂时忘记之前学到的面向对象的一切知识.这里只需要考虑赛车的情况.是的,就是赛车. 最近我正在观看 24 Hours of Le Mans ,这是法国流行的一项赛事.最快的车被称为 Le Mans 原型车.这些车虽然是由"奥迪"或"标致"这些厂商制造的,可它们并不是你在街上或速公路上所见到的那类汽车.它们是专为参加高速耐力赛事而制造出来的. 厂家投入巨额资金,用于研发.设计.制造这些原型车,而工程师们总是努力尝试将这项工程做到极致.他们在合金.生物燃料.制动技术

【转】JavaScript中的原型和继承

请在此暂时忘记之前学到的面向对象的一切知识.这里只需要考虑赛车的情况.是的,就是赛车. 最近我正在观看 24 Hours of Le Mans ,这是法国流行的一项赛事.最快的车被称为 Le Mans 原型车.这些车虽然是由“奥迪”或“标致”这些厂商制造的,可它们并不是你在街上或速公路上所见到的那类汽车.它们是专为参加高速耐力赛事而制造出来的. 厂家投入巨额资金,用于研发.设计.制造这些原型车,而工程师们总是努力尝试将这项工程做到极致.他们在合金.生物燃料.制动技术.轮胎的化合物成分和安全特性上