首页
学习
活动
专区
圈层
工具
发布

js中三目运算符和&& || 符的个人浅见

statementA : statementB ; 上述语句,首先判断条件condition,若结果为真则执行语句statementA,否则执行语句statementB。...那么如何输出更多语句或者执行一条以上的操作呢?...本身,++n返回的n值为n+1之后的结果 再说逻辑运算符 a() && b() :如果执行a()后返回true,则执行b()并返回b的值;如果执行a()后返回false,则整个表达式返回a()的值,b(...)不执行; a() || b() :如果执行a()后返回true,则整个表达式返回a()的值,b()不执行;如果执行a()后返回false,则执行b()并返回b()的值; && 优先级高于 || 1、只要...再次提醒你记住上面的原则:如果实参需要是0、""、null、false、undefined、NaN的时候也会当false来处理。

4.2K71
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    JavaScript 中 Property 和 Attribute 的区别详解

    input id="in_1" value="1" sth="whatever"> 简单的在html页面上创建一个input输入栏(注意在这个标签中添加了一个DOM中不存在的属性“sth”),此时在JS执行如下语句...var in1 = document.getElementById('in_1'); 执行语句 console.log(in1); 从console的打印结果,可以看到in1含有一个名为“attributes...此外,执行下面语句也会得到一样的结果 in1.attributes.value.nodeValue = 'new value of attr'; 由此,可得出结论: property能够从attribute...,可能包含多个DOM对象 // fn jQuery.attr方法 // name 属性名 // value 属性的值 // chainable 如果value为空,则chainable为false,否则...// 2: Attr, 属性, 子节点有Text, EntityReference // 3: Text, 元素或属性中的文本内容 // 8: Comment, 注释 // 不执行任何操作

    4.1K20

    23条JavaScript初学者应知的最佳实践方法

    唯一可以省略花括号的时候是在一行式的语句中,但即使这种情况,也是很有争议的。 if(2 + 2 === 4) return 'nicely done'; 始终要想着以后。...因为它在此处也非常合适(As it’s highly appropriate though),所有我将那段信息直接粘贴在这里。 记住—这条最佳实践的主要目标是尽可能快速地为用户加载页面。...当执行一个冗长的”for”语句之时,仅仅让解释引擎做必须干的活吧。...否则,使用对象”—Douglas Crockford 一长串变量?...话虽如此,始终谨记代码库的执行速度始终是比不上原始JavaScript代码的(假设了代码的正确性)。 jQuery的”each”方法用来做遍历非常赞,但使用原生”for”语句始终会快一些。

    79730

    23条JavaScript初学者应知的最佳实践方法

    唯一可以省略花括号的时候是在一行式的语句中,但即使这种情况,也是很有争议的。 if(2 + 2 === 4) return 'nicely done'; 始终要想着以后。...因为它在此处也非常合适(As it’s highly appropriate though),所有我将那段信息直接粘贴在这里。 记住—这条最佳实践的主要目标是尽可能快速地为用户加载页面。...当执行一个冗长的”for”语句之时,仅仅让解释引擎做必须干的活吧。...否则,使用对象”—Douglas Crockford 一长串变量?...话虽如此,始终谨记代码库的执行速度始终是比不上原始JavaScript代码的(假设了代码的正确性)。 jQuery的”each”方法用来做遍历非常赞,但使用原生”for”语句始终会快一些。

    74710

    前端必备,25个最基本的JavaScript面试问题及答案

    需要注意的是,在严格模式下(即使用 use strict),语句var a = b = 3; 将生成ReferenceError: b is not defined的运行时错误,从而避免任何否则可能会导致的...考虑到这一点,最简单又最干净的ECMAScript6之前的解决方法(同时也非常稳健地返回 false ,即使一个非数字的值,如字符串或 null ,被传递给函数)如下: function isInteger...11.写一个简单的函数(少于80个字符),要求返回一个布尔值指明字符串是否为回文结构。 下面这个函数在 str 是回文结构的时候返回true,否则,返回false。...如果这个布尔值为false,那么我们仍然不能知道 X||Y是真是假,直到我们计算 Y,并且也把它解释执行为一个布尔值。 因此, 0 || 1 的计算结果为true(1),同理计算1 || 2。...如果这个布尔值为true,但是,我们仍然不知道 X&&Y 是真是假,直到我们去计算 Y,并且也把它解释执行为一个布尔值。

    1.3K30

    基于JavaScript 声明全局变量的三种方式详解

    声明方式一: 使用var(关键字)+变量名(标识符)的方式在function外部声明,即为全局变量,否则在function声明的是局部变量。...即使该语句是在一个function内,当该function被执行后test变成了全局变量。...如JQuery1.5中最末一句 代码如下: window.jQuery = window.$ = jQuery; 全局变量的优点: 可以减少变量的个数,减少由于实际参数和形式参数的数据传递带来的时间消耗...全局变量的缺点: (1)全局变量保存在静态存贮区,程序开始运行时为其分配内存,程序结束释放该内存。与局部变量的动态分配、动态释放相比,生存期比较长,因此过多的全局变量会占用较多的内存单元。...但函数中如果使用了全局变量,那么函数体内的语句就可以绕过函数参数和返回值进行存取,这种情况破坏了函数的独立性,使函数对全局变量产生依赖。同时,也降低了该函数的可移植性。

    2.4K80

    前端编码规范

    : 后应添加一个空格; 声明语句应以分号 ; 结尾; 一般以逗号分隔的属性值,每个逗号后应添加一个空格; rgb()、rgba()、hsl()、hsla() 或 rect() 括号内的值,逗号分隔,但逗号后不添加一个空格...import > 变量声明 > 样式声明 @import .less不得省略, 用双引号 Mixin 在定义 mixin 时,如果 mixin 名称不是一个需要使用的 className,必须加上括号,否则即使不被调用也会输出到...如果混入的是本身不输出内容的 mixin,需要在 mixin 后添加括号(即使不传参数),以区分这是否是一个 className。...,不要用 idx 等 trigger 触点元素 triggerType 触发类型、方式 context 表示传入的 this 对象 object 推荐写全,不推荐简写为 o, obj 等 element...推荐写全,不推荐简写为 el, elem 等 length 不要写成 len, l prev previous 的缩写 next next 下一个 constructor 不能写成 ctor easing

    2.2K71

    第8章 JavaScript编程应用

    放置在标签之间 8-3 if语句和for语句的作用是什么? if语句:if条件判断语句是最基本、最常用的流程控制语句,可以根据条件表达式的值执行相应的处理。...statement 1:用于指定要执行的语句序列。当expression的值为true时,执行该语句序列。statement 2:用于指定要执行的语句序列。...当expression的值为false时,执行该语句序列。 For语句:for 循环语句也称为计次循环语句,一般用于循环次数已知的情况。...如果循环变量超过了该边限,则停止该循环语句的执行。increment:用来指定循环变量的步幅。statement:用来指定循环体,在循环条件的结果为true时,重复执行。...而且,也不应该整在这里介绍此语法,水了水了。 8-4 jQuery框架是什么?它有什么作用?

    75210

    jQuery源码研究:jQuery对象及原型上的extend()方法

    jQuery.extend( [deep ], target, object1 [, objectN ] ): 其中deep是布尔类型,如为true,则执行深拷贝,即合并成为递归; target是一个对象扩展...对象上添加extend属性,并且在jQuery.fn上面也添加同样的extend属性,还记得前面jQuery.fn = jQuery.prototype不?...; deep作为布尔类型值表明是否深度拷贝对象,如为true,且多个对象的某个同名属性也都是对象,则该"属性对象"的属性也将进行合并。...非undefined值 // tips: 这个有个小技巧,undefined == null 值为true; 但undefined === null值为false。...所谓纯对象,指的就是普通的键值对形式构成的对象 // 当deep为true意为执行深拷贝,且copy对象为纯对象 或 copy对象为数组 Array.isArray()用于确定传递值是否为数组

    1.4K30

    一文彻底搞懂ES6 Module

    所有依赖模块的语句,都定义在一个回调函数中,等到模块加载完成之后,这个回调函数才会运行 代表库为require.js /** main.js 入口文件/主模块 **/ // 首先用config()指定各模块路径和引用名...require.config({ baseUrl: "js/lib", paths: { "jquery": "jquery.min", //实际路径为js/lib/jquery.min.js.../xxx.js' a.foo = 'hello'; // 合法操作 a = {}; // Syntax Error : 'a' is read-only; 不过建议即使能修改,但我们不建议。...,需要知道加载的变量名和函数,否则无法加载 如果不需要知道变量名或函数就完成加载,就要用到export default命令,为模块指定默认输出 // export-default.js export default...export语句写在一起 export { foo, bar } from 'my_module'; // 可以简单理解为 import { foo, bar } from 'my_module';

    66560

    37个JavaScript基本面试问题和解答(建议收藏)

    为什么或者为什么不?...- 是false: console.log(NaN === NaN); // logs "false" 测试数字是否等于NaN的半可靠方法是使用内置函数isNaN(),但即使使用 isNaN()也不是一个好的解决方案...考虑到这一点,最简单,最清洁的ECMAScript-6之前的解决方案(即使将非数字值(例如字符串或空值)传递给该函数,该解决方案也具有足够的可靠性以返回false)将成为以下用法按位异或运算符: function...如果str是回文,以下一行函数将返回true;否则,它返回false。...在X && Y形式的表达式中,首先评估X并将其解释为布尔值。如果此布尔值为false,则返回false(0)并且不评估Y,因为“and”条件已失败。

    4.1K10
    领券