`

由javascript的逻辑或运算所了解到的

 
阅读更多

今天在阅读同事写的代码过程中发现这样一段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 赋值后的值

 

分享到:
评论

相关推荐

    计算器运算逻辑实现(带括号,求余,乘方,加减乘除),不使用eval函数-前端JavaScript 源码实现-括号匹配与初等运算

    加法(+)、减法(-)、乘法(*)和除法(/)是基础,但为了支持括号和更复杂的运算,我们需要了解优先级和运算顺序。在JavaScript中,括号用于改变运算顺序,表达式`a * (b + c)`会先计算括号内的`b + c`,然后将...

    javascript网页版计算器

    - 处理输入:根据点击的按钮,JavaScript会将数字或运算符添加到当前计算表达式中。 - 计算结果:当用户点击等于号(=)时,JavaScript会对当前表达式进行求值,使用内置的数学函数(如`Math.pow`、`Math.sqrt`等...

    Javascript做的计算器源代码

    通过分析和理解这个源代码,开发者不仅可以掌握JavaScript的基本语法,还能了解到事件处理、DOM操作以及如何用JavaScript实现与用户交互的功能。 总结来说,这个"Javascript做的计算器源代码"涵盖了HTML和...

    JavaScript详解.doc

    JavaScript最初由Netscape公司开发,名为LiveScript,后来更名为JavaScript,以利用当时Java的流行度。与Sun公司的Java不同,JavaScript并非一种面向对象的语言,而是基于对象的,它允许直接操作内置对象,如DOM...

    JavaScript计算器

    JavaScript计算器是一种常见的编程练习,它涉及HTML、CSS和JavaScript三个主要技术栈,是初学者学习网页动态交互功能的绝佳案例...通过这个项目,你可以了解到网页应用的基本工作原理,并为更复杂的应用开发打下基础。

    javascript白色简洁计算器

    每次按键或运算后,结果应实时显示在屏幕上。这可以通过修改相关元素的`innerHTML`属性来完成。同时,为了保持界面的整洁,计算器的布局和样式也需精心设计。在白色背景上,简洁的字体、合适的边距和对齐方式可以...

    javascript 课件

    3. **逻辑运算符**:包括 `&&`(逻辑与),`||`(逻辑或),`!`(逻辑非)。 条件语句: 1. **if 语句**:用于基于条件执行不同代码块。 ```javascript if (condition) { // 条件为真时执行的代码 } ``` 2. **if-...

    JavaScript开发技术大全.pdf

    操作符则用于进行算术、比较和逻辑运算,理解它们对于编写逻辑严谨的代码至关重要。 接着,深入学习JavaScript的控制结构,包括条件语句(if...else、switch)和循环(for、while、do...while),这些都是编写流程...

    javascript pocket reference

    ### JavaScript Pocket Reference ...通过以上章节的概述,读者可以了解到《JavaScript Pocket Reference》涵盖的核心概念和技术细节。这本书对于希望快速查阅JavaScript语言特性的开发人员来说是非常有价值的资源。

    五个javascript小游戏

    JavaScript中的数学运算和逻辑判断在这里起到关键作用。 通过分析这些JavaScript小游戏,你可以深入了解如何运用上述知识点构建互动的网页应用。每个游戏都可能包含独特的设计和实现,提供了一个实践和学习...

    JavaScript编写科学计算器

    这些功能将需要额外的JavaScript逻辑和可能的DOM操作。 最后,测试是任何项目的关键部分。我们需要确保计算器在各种输入条件下都能正确工作,包括边界条件和异常情况。这可以通过编写单元测试和集成测试来实现,...

    JavaScript基础与实例教程

    操作符用于执行比较、算术和逻辑运算。 函数是JavaScript中的重要组成部分,可以封装代码并实现复用。函数可以有参数和返回值,也可以作为一等公民参与程序的其他部分。了解闭包和作用域也是学习JavaScript的关键,...

    JavaScript手册-中文文档

    - 表达式与操作符:包括算术、比较、逻辑和赋值等操作符,以及表达式的运算规则。 - 控制流:如条件语句(if...else)、循环(for、while、do...while)以及switch语句。 - 函数:定义函数的方式,参数传递,以及...

    JavaScript前端开发-教案PDF版.zip

    在这个项目中,学习者将了解到`Document`对象的各种元素属性修改、元素操作以及元素节点操作,这些都是构建交互式网页的关键。特别是,`Document`对象的元素属性修改可以让网页元素动态响应用户操作,如商品图片的...

    用javaScript实现的计算器

    当用户点击数字或运算符按钮时,会触发对应的事件处理函数。这些函数会根据用户输入更新显示屏的内容,并可能存储当前的操作数和运算符。JavaScript的事件模型包括捕获阶段、目标阶段和冒泡阶段,但在这个简单的例子...

    用javaScript做的小游戏,很有趣。

    JavaScript是一种广泛应用于...通过分析和学习这些代码,你可以了解到实际项目中如何将上述知识点结合在一起,实现一个完整的游戏。无论是初学者还是有经验的开发者,都能从中获益,加深对JavaScript游戏开发的理解。

    基于javascript脚本开发的网页计算器

    实现这些功能,我们需要了解并使用JavaScript的Math对象,它提供了许多数学函数,如`Math.pow()`(指数运算)、`Math.sqrt()`(平方根)、`Math.log()`(对数)、`Math.sin()`、`Math.cos()`和`Math.tan()`(三角...

    Object_Oriented_Javascript

    ### Object_Oriented_Javascript #### 重要概念与知识点概览 **JavaScript**作为一种流行的编程语言,在Web开发中占据着核心...这些知识点不仅适用于初学者,也对希望深入了解JavaScript内部机制的开发者非常有用。

Global site tag (gtag.js) - Google Analytics