JavaScript 加号(+)运算符号
一,对于引用类型对象(我指的是String,Date,Object,Array,Function,Boolean)的+运算符运算过程如下!
1,首先调用此对象的valueOf方法,得到返回数值A
2,然后把此数值A转换成数字,得到的是最终数值
function w(s){
document.writeln("<br/>");
document.writeln(s);
document.writeln("<br/>-----------------------------");
}
String.prototype.valueOf=function(){return 1;};
w(+new String("sss"));//输出1
String.prototype.valueOf=function(){return "a";};
w(+new String("sss"));//输出NaN
Date.prototype.valueOf=function(){return 1;};
w(+new Date());//输出1
Date.prototype.valueOf=function(){return "a";};
w(+new Date());//输出NaN
Object.prototype.valueOf=function(){return 1;};
w(+{});//输出1
Object.prototype.valueOf=function(){return "a";};
w(+{});//输出NaN
Array.prototype.valueOf=function(){return 1;};
w(+[]);//输出1
Array.prototype.valueOf=function(){return "a";};
w(+[]);//输出NaN
var s=function(){};
Function.prototype.valueOf=function(){return 1;};
w(+s);//输出1
Function.prototype.valueOf=function(){return "a";};
w(+s);//输出NaN
Boolean.prototype.valueOf=function(){return 1;};
w(+new Boolean());//输出1
Boolean.prototype.valueOf=function(){return "a";};
w(+new Boolean());//输出NaN
w(+5);//输出5
w(+true);//输出1
w(+false);//输出0
w(+"ss");//输出NaN
w(+"111");//输出111
相关推荐
-
javascript去除字符串中所有标点符号和提取纯文本的正则
用正则表达式除字符串中所有标点符号 复制代码 代码如下: <script language="javascript"> var str="jfkldsjalk,.23@#!$$k~! @#$%^&*()(_+-=|\{}[]';:,./<>??gg g~```gf"; str=str.replace(/[\ |\~|\`|\!|\@|\#|\$|\%|\^|\&|\*|\(|\)|\-|\_|\+|\=|\||\\
-
用JavaScript实现全局替换,解决$等特殊符号的难题[
感谢海浪提供的正则,原贴请参见: http://www.iecn.net/bbs/view/106503.html 因为要做个模板替换的东西,里面的变量采用${MyName}这种格式的命名方式.在进行全局替换时,遇到两个难点: 1.要么无法替换掉$等特殊符号 2.要么无法忽略大小写 在海浪有帮助下,终于有了最佳实现方式:) 最佳实现方式: 复制代码 代码如下: <script type="text/javascript"> String.prototype.replace
-
仅用[]()+!等符号就足以实现几乎任意Javascript代码
请在Firefox下测试 看了下例子: js代码 <script> alert("hi there") </script> 就等价于 <script> ([][(![]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[
-
JavaScript中也使用$美元符号来代替document.getElementById
复制代码 代码如下: function $(id){return document.getElementById(id); 上面的对于新版本的浏览器都是没有问题的,如果使用古老的浏览器,可以使用下面的函数 复制代码 代码如下: function $(objectId) { if(document.getElementById && document.getElementById(objectId)) { // W3C DOM return document.getElementById(o
-
深入分析下javascript中的[]()+!
这个东西也不是新鲜玩意了,很久之前就见过,但是一看到那一大坨代码,实在是提不起一点研究的兴趣.无奈今天碰到这样一道题目,只好决定深入研究一下. 关于上面的题目,有必要多说几句.实际上题目并没有要求一定只有[]()+!这六个字符,要求会宽松不少,不过题目描述中并没有说明的很清楚.而且运行环境是node,这样导致并没有window,history,document这些对象.更没有window.atob();和window.atob();这两个函数.总之那道题与我这篇文章并没有多大关系.不过在通过题目
-
用javascript判断输入数据是否货币并自动添加¥符号的代码
经典上的一位朋友提出的问题,偶以前正好写过一个股票系统处理过一些货币数据,现在记忆犹在,所以就帮忙解决了.自己也保存再次,以便以后使用. new document [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
-
JavaScript 加号(+)运算符号
一,对于引用类型对象(我指的是String,Date,Object,Array,Function,Boolean)的+运算符运算过程如下! 1,首先调用此对象的valueOf方法,得到返回数值A 2,然后把此数值A转换成数字,得到的是最终数值 我的测试如下: 复制代码 代码如下: function w(s){ document.writeln("<br/>"); document.writeln(s); document.writeln("<br/>-
-
PHP常用特殊运算符号和函数总结(php新手入门必看)
注解符号: // 单行注解 多行注解引号的使用 ' ' 单引号,简单字符串,不经任何处理直接拿过来; " "双引号,php动态处理然后输出,一般用于处理$变量.布尔变量: 一种是true 即 真的; 另一种是false 即假的常见变量: string 字串(数字\汉字\等等) integer
-
JavaScript整除运算函数ceil和floor的区别分析
本文实例分析了JavaScript整除运算函数ceil和floor的区别.分享给大家供大家参考.具体分析如下: Math.ceil(count / pagesize); //向上整除,如 Math.ceil(4/3)结果为2; Math.floor(count / pagesize); //向下整除,如 Math.floor(4/3)结果为1; 希望本文所述对大家的javascript程序设计有所帮助.
-
Python学习之运算符号
目录 1.算数运算符: 2.赋值运算符: 3.比较运算符 4.逻辑运算符 5. 成员运算符 总结 大至分为以下5类运算符号 算数运算符 赋值运算符 比较运算符 逻辑运算符 成员运算符 算数运算符 和 赋值运算符 运算是得到真实的结果 比较运算符 逻辑运算符 和 成员运算符 运算得到的 是布尔值 真True 或 假False 1.算数运算符: + 加 - 减 * 乘 / 除
-
python运算符号详细介绍
目录 比较运算符 布尔运算符 python中的位运算符 运算符的优先级 比较运算符 a,b=10,30 print('a>b吗?',a>b) print('a<b吗?',a<b) print('a<=b吗?',a>=b) print(a is b)#这个比较的是id标识 a>b吗? False a<b吗? True a<=b吗? False False 一个变量有三部分组成:1标识,2类型,3值 比较对象的标识使用is 布尔运算符 print(a==1
-
JavaScript 短路运算的实现
目录 由来 && 和 || 也叫短路 注意 场景代码 && || 真值短路,短路或 || 经常用来设置函数参数的默认值 发生这次记录的项目代码 结尾 由来 讲一下本篇的由来: 刚刚启一个带有子服务的主服务:base项目上的代码,诉求是这样子的:子服务-端口号:8599需要从主服务-端口号:8001登录进入.主服务base有一个判断工作空间的配置,其他子服务无工作空间的业务,只有子服务-:8599有.正常情况下判断一下当前服务的routeBase,再合并一下基础配置:比如se
-
JavaScript中双符号的运算详解
一.双波浪号 var i = 5.1; var j = 5.5; console.log(~~i); // 5 console.log(~~j); // 5 作用类似Math.floor. 类似的意思是在处理正数的时候,如果处理负数就它俩就不同了: ~~-5.1 // 5 Math.floor(-5.1) // -6 ~~-5.5 // 5 Math.floor(-5.5) // -6 注: Math.ceil(x) Returns the smallest integer greater th
-
javascript加号"+"的二义性说明
单个的加号作为运算符在 JavaScript 中有三种作用.它可以表示字符串连接,例如: 复制代码 代码如下: var str = 'hello ' + 'world!'; 或表示数字取正值的一元运算符,例如: 复制代码 代码如下: var n = 10; var n2 = +n; 或表示数值表达式的求和运算,例如: 复制代码 代码如下: var n = 100; var nn2 = n + 1; 三种表示法里,字符串连接与数字求和是容易出现二义性的.因为 JavaScript 中对这两种运
-
JavaScript的==运算详解
大家知道,JavaScript中的==是一种比较复杂运算,它的运算规则很奇怪,很容易让人犯错,从而成为JavaScript中"最糟糕的特性"之一. 在仔细阅读ECMAScript规范的基础上,我画了一张图,我想等你理解了这张图后,会彻底地弄懂关于==运算的一切.同时,我试图通过此文向大家证明==并不是那么糟糕的东西,它很容易掌握,甚至看起来很合理,并没那么糟糕. 先上图: ==运算规则的精确描述在此:The Abstract Equality Comparison Algorithm.
-
详解JavaScript 浮点数运算的精度问题
问题描述 在 JavaScript 中整数和浮点数都属于 Number 数据类型,所有数字都是以 64 位浮点数形式储存,即便整数也是如此. 所以我们在打印 1.00 这样的浮点数的结果是 1 而非 1.00 .在一些特殊的数值表示中,例如金额,这样看上去有点变扭,但是至少值是正确了.然而要命的是,当浮点数做数学运算的时候,你经常会发现一些问题,举几个例子: // 加法 ===================== // 0.1 + 0.2 = 0.30000000000000004 // 0.7
随机推荐
- Delphi实现检测并枚举系统安装的打印机的方法
- 关于Git远程与本地冲突的解决方法
- JS实现根据出生年月计算年龄
- Perl文件读取的经典用法分享
- Vue Spa切换页面时更改标题的实例代码
- VBS教程:函数-CInt 函数
- 批处理 文件归类整理器(当面目录)
- DevExpress实现为TextEdit设置水印文字的方法
- iOS实现带动画的环形进度条
- java多线程之火车售票系统模拟实例
- Docker-利用dockerfile来搭建tomcat服务的方法
- JavaScript仿微信(电话)联系人列表滑动字母索引实例讲解(推荐)
- 模拟javascript中的sort排序(简单实例)
- javascript 表单日期选择效果
- Python实现的一个简单LRU cache
- jquery实现先淡出再折叠收起的动画效果
- jQuery图片的展开和收缩实现代码
- 某省高考志愿填报系统的漏洞实战解说
- 使用google-perftools优化nginx在高并发时的性能的教程(完整版)
- php实现的一段简单概率相关代码