不明白这个JS

function decimalToHex(d, padding) { var hex = Number(d).toString(16); /*I dont understand this part: does this mean if padding gets a value = "undefined". It'd be equal to "justchecking" in this case. What is a value of "undefined" then? is it really necessary this if-statement? */ padding = typeof (padding) === "undefined" || padding === null ? padding = "justchecking" : padding; while (hex.length < padding) { hex = "0" + hex; } return hex; }

谢谢你的解释?

--------------解决方案-------------

padding = typeof (padding) === "undefined" || padding === null ? padding = "justchecking" : padding;

有一个在有条件的错误上面应改为:

padding = typeof (padding) === "undefined" || padding === null ? "justchecking" : padding;

但在任何情况下,这相当于写:

if(typeof(padding) == "undefined" || padding === null)
{
padding = 'justchecking';
}

它是什么做的是如果填充存在并且以最明确的方式定义,因为只是检查看到if(padding)将返回falsy如果填充为“”或0。但是,如果你检查一个变量的类型,它有没有被定义那么它获得的特殊字符串“不确定”。 如果你只是检查null可以把它定义,因为空是未定义typeof运算的感实性不同。 一个小的概述是在这里:http://scottdowne.wordpress.com/2010/11/28/javascript-typeof-undefined-vs-undefined/,你也可以找到它的道格拉斯康乐福讨论的权威指南,我认为。

这是一个三元操作符。 简单地说,这是一个浓缩版的if / else块的,格式为:

condition ? true expression : false expression;

在你的情况下,它的默认值paddingjustchecking

这只是分配默认值“justchecking”为填充变量,如果没有填充存在。

它可以还写为:

padding = padding || "justchecking";

......虽然它并不完全等同,因为这也将使用默认的替代值0。

它的意思是:分配“justchecking”变量“填充”,如果它被定义并且为空。

分类:JavaScript的 时间:2012-01-01 人气:0
本文关键词: JavaScript中,if语句
分享到:

相关文章

  • 在JavaScript中“回归”语句的奇怪行为 2012-07-27

    我是很新的JavaScript和刚刚开始在JavaScript中一些较为严重的发展. 我有很多的实现模块模式的乐趣. 有一件事,真的让我抓狂的是"回归"语句的行为. 这是一个很大的区别,如果你写 Test = ( function() { var message = "Hello World!"; return { // Does not work printTest: function() { window.alert(message); } }; }()); 要

  • Firebug的调试JavaScript中switch语句混乱 2013-01-01

    我在JavaScript中的以下switch语句: switch(scrollable.direction){ case "top" : break; case "left" : break; case "right" : scrollable.select("."+lineCssClass).invoke("setStyle", {float: "right"}); break; ca

  • 在JavaScript中条件语句 2014-06-06

    在C#.NET,我们会使用条件语句如下所示: string Place = TextBox1.Text == "" ? "School" : TextBox1.Text; 如何使用条件语句中的JavaScript. 我分配一个值到文本框,如果没有价值,那么我要分配"1"文本框. 在这里,我用这样的, document.getElementById('<%=txtPlace.ClientID %>').value = obj[1]; 如

  • 使用JavaScript中块的返回值 2015-01-30

    在很多我测试浏览器,JavaScript的块实际上返回一个值. 您可以在任何控制台对其进行测试: for(var i = 0; i < 10; i++) { var sqrt = Math.sqrt(i); if(Math.floor(sqrt) === sqrt) { i; } } "返回"值的最后一个平方数,也就是9! 但因为它不是我想表达,你可以这样做: for(var i = 0; i < 10; i++) { ... } + 5 这是行不通的. 它提供了+ 5或5

  • 在Javascript中,当一个新的范围内创建? (有一个新的功能,并在“与”语句)难道这些只有2种情况? 2012-01-12

    在Javascript中,当一个新的范围内创建? 在2种情况,我知道的是: 一个新的功能( 更新 2012/09,我认为它需要一个函数调用,而不仅仅是一个函数的定义) 在"用"的声明 作为一个说明,任何新的块(在IF-THEN-ELSE,循环,或刚开始没有其他原因,一个块)将不会创建一个新的作用域. 是否存在这样一种新的范围,除了这两种情况上面创建第三个情况? 谢谢. --------------解决方案------------- 对了,还有那里的作用域链增强(除了第三种情况let M

  • 如何使在JavaScript中这个大的if语句更具有可读性 2012-10-27

    我需要做下面的大if语句在JavaScript中更具可读性. 有任何想法吗? if ( Tools.Array.contains( that.pAutocompleteAliasUsed[i], this.currentString) !== false && ( this.autocomplete.list.length === 0 ) || ( this.currentString.toLowerCase() !== this.autocomplete.list[0].target.a

  • 如何致力于模拟JavaScript中的SQL语句合并的功能 2012-11-12

    我在想,如果有一个JavaScript的方式有类似coalesce语句逻辑SQL将在这样一个特定的顺序返回数据: Select top 1 Coalesce(ColA, ColB, "No Data Found") from TableA; 有一种优雅的方式来处理在Javascript中,空值的SQL在上面的语句返回的结果一样吗? 我知道我可以在技术上有一个switch语句,但这需要一些可能不必要的代码 谢谢. --------------解决方案------------- 您可以使用

  • 如何写IF语句内嵌在JavaScript中? 2013-06-29

    我如何使用内联if在JavaScript语句? 是否有一个内嵌else说法吗? 事情是这样的: var a = 2; var b = 3; if(a < b) { // do something } --------------解决方案------------- 你并不一定需要jQuery的. 单独的JavaScript会做到这一点. var a = 30; var b = 40; var c = ((a < b) ? 2 : 3); 有2是价值时true ,3是当值false . 这被称为一

  • 我如何使用一个变量,一个布尔值在JavaScript中的IF语句的条件? 2014-08-24

    这个问题已经在这里有一个答案: 是'如果(条件=值)`正确的语法进行比较? 5回答 我如何使用一个变量,一个布尔值在JavaScript中的IF语句的条件? patt1 = new RegExp ("time"); var searchResult = (patt1.test("what time is it" )); // search for the word time in the string // and return true or false If (

  • 在Javascript中,有什么比try / catch语句用于退出外范围有多大? 2014-11-03

    在Javascript中,我有时想从一个范围不属于当前函数返回一个值. 它可能是代码函数内的一个块,或者它可能是一个封闭的功能如以下示例,它采用了本地函数递归搜索的东西. 只要找到一个解决方案,搜索完成,外部函数应该只是退出. 不幸的是,我想不出一个更简单的方法不是黑客的try / catch为宗旨,以做到这一点: function solve(searchSpace) { var search = function (stuff) { var solution = isItSolved(stu

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.854 (s). 10 q(s)