今天在阅读同事写的代码过程中发现这样一段javascript代码:
function geturl(uitype,_backurl) {
uitype = uitype||1;
var _burl = _backurl||this.location.href;
....
}
里面的"||"运算符,在我的印象里他返回的应该布尔型,true或者fasle,但是这个函数中的变量肯定不是要返回布尔型。
于是查资料发现问题所在:
javascript 使用下面的规则来把非 Boolean 值转换为 Boolean 值:
1.所有对象都被认为是 true。
2.字符串当且仅当为空时才被认为是 false。
3.null和undefined被认为是 false。
4.数字当且仅当为 0 时才是 false。
这里就能理解 var _burl = _backurl||this.location.href; 这句话
当_backurl参数为空的时候 _burl就等于this.location.href的值,
延伸:
var uitype = 0||1; 返回 1
var uitype = 0||"abc"; 返回 abc
var uitype = 1||"abc"; 返回 1
var uitype = 0||undefined; 返回 undefined
var uitype = undefined||0; 返回 0
javascript运算符与表达式:
括号 |
(x) [x] |
中括号只用于指明数组的下标
|
求反、
自加、
自减 |
-x |
返回 x 的相反数 |
!x |
返回与 x (布尔值)相反的布尔值 |
x++ |
x 值加 1,但仍返回原来的 x 值 |
x-- |
x 值减 1,但仍返回原来的 x 值 |
++x |
x 值加 1,返回后来的 x 值 |
--x |
x 值减 1,返回后来的 x 值 |
乘、除 |
x*y |
返回 x 乘以 y 的值 |
x/y |
返回 x 除以 y 的值 |
x%y |
返回 x 与 y 的模(x 除以y 的余数) |
加、减 |
x+y |
返回 x 加 y 的值 |
x-y |
返回 x 减 y 的值 |
关系运算 |
x<y x<=y x>=y x>y |
当符合条件时返回 true 值,否则返回 false 值 |
等于、 不等于 |
x==y |
当 x 等于 y 时返回 true 值,否则返回 false 值 |
x!=y |
当 x 不等于 y 时返回 true 值,否则返回 false 值 |
位与 |
x&y |
当两个数位同时为 1 时,返回的数据的当前数位为 1,其他情况都为 0 |
位异或 |
x^y |
两个数位中有且只有一个为 0 时,返回 0,否则返回 1 |
位或 |
x|y |
两个数位中只要有一个为 1,则返回 1;当两个数位都为零时才返回零 |
位运算符通常会被当作逻辑运算符来使用。它的实际运算情况是:把两个操作数(即 x 和 y)化成二进制数,对每个数位执行以上所列工作,然后返回得到的新二进制数。由于“真”值在电脑内部(通常)是全部数位都是 1 的二进制数,而“假”值则是全部是 0 的二进制数,所以位运算符也可以充当逻辑运算符。 |
逻辑与 |
x&&y |
当 x 和 y 同时为 true 时返回 true,否则返回 false |
逻辑或 |
x||y |
当 x 和 y 任意一个为 true 时返回 true,当两者同时为 false 时返回 false |
逻辑与/或有时候被称为“快速与/或”。这是因为当第一操作数(x)已经可以决定结果,它们将不去理会 y 的值。例如,false && y,因为x == false,不管 y 的值是什么,结果始终是 false,于是本表达式立即返回 false,而不论 y 是多少,甚至 y 可以导致出错,程序也可以照样运行下去。 |
条件 |
c?x:y |
当条件 c 为 true 时返回 x 的值(执行 x 语句),否则返回 y 的值(执行 y 语句) |
赋值、 复合运算 |
x=y |
把 y 的值赋给 x,返回所赋的值 |
x+=y x-=y x*=y x/=y x%=y |
x 与 y 相加/减/乘/除/求余,所得结果赋给 x,并返回 x 赋值后的值
|
分享到:
相关推荐
JavaScript实现检验除法运算JavaScript实现检验除法运算JavaScript实现检验除法运算JavaScript实现检验除法运算JavaScript实现检验除法运算
JavaScript打印实现逻辑
此函数是我自己写的,虽然在网上可以搜到很多,不过我找到的都是在算法中存在基本的浮点数的运算,导致结果仍然是错误的。由于刚刚学写JS,所以可能考虑不够周全,望大家批评指正。 代码中加了四舍五入函数,是网上...
运算顺序条件运算符是从右向左,而逻辑与和逻辑或都是从左向右。 //表达式的优先级导致结果不同 false && true || true // 结果为 true false && (true || true) // 结果为 false 逻辑运算表达式返回的是字表达式...
前端开发+JavaScript+网页打砖块小游戏+熟悉JavaScript逻辑以及编程思想,感受前端JavaScript的魅力。适合想学习JavaScript以及学习小游戏制作的同学。
’、逻辑与’&&’、逻辑或’||’3种,本文将介绍这三种逻辑运算符 逻辑非 逻辑非操作符由一个叹号(!)表示,可以应用于ECMAScript中的任何值。无论这个值是什么数据类型,这个操作符都会返回一个布尔值。逻辑非操作...
JavaScript中极易出错的操作符运算总结 目录 算术运算符 非正常情况1: 有特殊值字面量参与的运算非正常情况2: 其他类型的数据参与数学运算。比较运算符 非正常情况1: 特殊值参与比较运算非正常情况2: 其他数据...
javascript float运算会有误差,可以用此脚本中的函数进行修补。
使用HTML5、CSS3和JavaScript实现加、减、乘、除四个基本算术运算操作。
Javascript提供了丰富的运算功能,包括算术运算、关系运算、逻辑运算和连接运算。JavaScript的一个重要功能就是面向对象的功能,通过基于对象的程序设计,可以用更直观、模块化和可重复使用的方式进行程序开发。本文...
在JavaScript 中,逻辑NOT运算符与C和Java中的逻辑 NOT 运算符相同,都由感叹号(!)表示。与逻辑 OR 和逻辑 AND 运算符不同的是,逻辑 NOT 运算符返回的一定是 Boolean 值。 逻辑 NOT 运算符的行为如下: 如果运算...
JavaScript是世界上最流行的脚本语言,因为你在电脑、手机、平板上浏览的所有的网页,以及无数 基于HTML5的手机App,交互逻辑都是由JavaScript驱动的。 简单地说,JavaScript是一种运行在浏览器中的解释型的编程语言...
按位与或非是对计算机位的操作,属于计算机二进制运算的操作。——位操作符 逻辑与或非是对boolean(布尔)值的操作。——布尔操作符 操作符: 按位 与(&) 或(|) 非(~). 逻辑 与(&&) 或(||) 非(!) ...
在JavaScript中,逻辑 AND 运算符用双和号(&&)表示 var bTrue = true; var bFalse = false; var bResult = bTrue && bFalse; 下面的真值表描述了逻辑AND运算符的行为: 需要说明的是:逻辑AND运算的运算数...
该演示系统应用了JavaScript 、H5、CSS3等主流技术。
JavaScript中的数学运算介绍.docx
在编写代码时我们有时候会碰到需要自己解析四则运算表达式的情况,本文简单的介绍使用JavaScript实现对简单四则运算表达式的解析。 一、熟悉概念 中缀表示法(或中缀记法)是一个通用的算术或逻辑公式表示方法, ...
对于非常大或非常小的数,可以用科学记数法表示浮点值。采用科学记数法,可以把一个数表示为数字加e/E,后面加乘以10的倍数,如: 代码如下: var num1 = 3.125e7; // 31250000 var num2 = 3e-17; // 0....
JavaScript