JavaScript tips and tricks - 4

JavaScript doesn’t have block scope
Block doesn’t have scope in javascript, only function has scope.

for(var i = 0; i < 2; i ++) { } i;  // 2

If you want to create scope, use anonymous function:

(function (){ for(var i = 0; i < 2; i ++) { } })(); typeof(i) === 'undefined';  // true

NaN is weird
NaN indentifies a value which is not a number.
It’s weird because comparing NaN with anything (even NaN itself) is always false.

NaN === NaN; // false

Therefore, the following code may confuse somebody:

parseInt('hello', 10); // NaN parseInt('hello', 10) == NaN; // false parseInt('hello', 10) === NaN; // false

Then, how to check whether a number is NaN or not?
A built-in function can help you, check it:

isNaN(parseInt('hello', 10)); // true

Truthy and falsy values
All values in javascript can be converted into boolean implied.
Note that the following values can be converted into false ones automatically, which called falsy values:
null, undefined, NaN, 0, ‘’, false
Therefore you don’t need to do like this:

if(obj === undefined || obj === null) { }

Simply do as follows:

if(!obj) { }

How to modify arguments
In this post , I give a method to convert arguments into a real array.
Then, how to modify arguments?
For example, add a new value to the end of the arguments:

function add() { arguments.push('new value'); } add(); // error - arguments.push is not a function

Of course there would be an error, because arguments is not a real array.
Following is the solution:

function add() { Array.prototype.push.call(arguments, 'new value'); return arguments; } add()[0]; // "new value"

Boolean and new Boolean
You’d better consider Boolean as a constructor function. It can be used to produce a Boolean literal value:

Boolean(false) === false; // true Boolean('') === false; // true

Boolean(0) is equal to !!0, which was mentioned in this post.
Also, we can use new keyword to produce a boolean object:

new Boolean(false) === false; // false new Boolean(false) == false; // true typeof(new Boolean(false)); // "object" typeof(Boolean(false)); // "boolean"

This is interesting.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/549448.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

题解CF110E

感谢nofind大佬的推荐☆⌒(*&#xff3e;-゜)v nofind就是我男神&#xff0c;不接受反驳 大雾 CF110E Luogu 题意简述 大佬们自己看洛谷的题目就好了&#xff0c;写的既清楚又简短&#xff0c;我就不再赘述了其实就是自己懒 分析 一看到这个式子就知道不可以硬怼&#xff0c;又…

Office2010试用

昨天看到了Office的下载地址&#xff0c;就安装了一个试了试&#xff0c;总体感觉和Office2007变化不大&#xff0c;外观配色上看起来非常舒服&#xff0c;Aero效果用得更多了&#xff0c;具体功能改进还没有细研究&#xff08;其实一直感觉到了2003后的更新大都只是在界面和适…

使用acme.sh签发Let's Encrypt的免费数字证书

--------------安装----------------curl https://get.acme.sh | sh#让alias生效source ~/.bashrc -------------设置DNS API------------在dns运营商网站设置DNS API的API KEY/SECRET KEY#例如阿里云&#xff0c;域名所在账号登录后&#xff0c;进入如下页面进行设置 https://…

DataGridView 控件中至少有一列没有单元格模板的解决

当程序动态为DataGridView添加一列时如果这样写&#xff1a; DataGridViewColumn col new DataGridViewColumn (); col.Name "colname"; col.HeaderText "列标题"; Dgv.Columns.Add(col); 肯定会提示“DataGridView 控件中至少有一列没有单元格模板…

部署安全系统之道

如何才能确保系统的安全&#xff1f;这虽然是一个老生常谈的问题&#xff0c;但是&#xff0c;还是有很多网络用户不知道该如何回答&#xff0c;或者是不知道什么才是最恰当的回答。究其原因&#xff0c;不是他们不知道如何去做&#xff0c;而是没有为此形成一种解决问题的思路…

配置WINDOWS群集

配置WINDOWS群集 实验说明&#xff1a;本实验用于配置WINDOWS群集 实验名称&#xff1a;配置WINDOWS群集 实验目的&#xff1a;理解WINDOWS群集服务的工作原理&#xff0c;熟练掌握安装WINDOWS群集服务及配置WINDOWS群集 实验设备&#xff1a;windows server 2003 VM 二台 实验…

在lighttpd上使用fastcgi方式部署hg server

lighttpd配置&#xff1a;#加载fastcgi模块 server.modules ( "mod_fastcgi" ) #定义一个新的web服务在81端口 $SERVER["socket"] "0.0.0.0:81"{ server.document-root "/home/hg/hgserver/" #下面是认证的配置 #auth.debug 2 a…

走进Windows Server 2008服务器核心(Serve Core)

从 Windows Server 2008 开始&#xff0c;管理员可以选择安装具有特定功能但不包含任何不必要功能的 Windows Server 的最小安装服务器核心(Server Core)&#xff0c;它为一些特定服务的正常运行提供了一个最小的环境&#xff0c;从而减少了其他服务和管理工具可能造成的***和风…

深入解读ESB与SOA的关系

深入解读ESB与SOA的关系时至今日&#xff0c;SOA的概念渐渐清晰了。有关ESB的概念&#xff0c;已经吵了好多年了&#xff0c;还是没有定论。我个人认为&#xff0c;ESB本来就是抽象的概念&#xff0c;而且内涵丰富&#xff0c;在不同的场合含义不同。因此应该从不同的角度来认识…

李天平×××作诞生记——《亮剑.NET:.NET深入体验与实战精要》

从开始搞.NET开发至今已经有六、七年了&#xff0c;从当初对.NET一无所知&#xff0c;到现在领导研发团队进行各种项目的开发和架构设计&#xff0c;几年里经历了各种沟沟坎坎&#xff0c;无论是技术上的&#xff0c;还是管理上的。这些经历和经验就像一笔财富&#xff0c;为自…

javascript面向对象5

类变量/类方法/实例变量/实例方法在js中&#xff0c;所有的方法都有一个call方法和apply方法&#xff0c;这两个方法可以模拟对象调用方法。它的第一个参数是对象&#xff0c;后面的参数表示对象调用这个方法时的参数。比如&#xff0c;我们定义了一个方法f(),然后调用下面的语…

shell下数字和字符串比较操作命令

整数比较 -eq 等于,如:if [ "$a" -eq "$b" ] -ne 不等于,如:if [ "$a" -ne "$b" ] -gt 大于,如:if [ "$a" -gt "$b" ] -ge 大于等于,如:if [ "$a" -ge "$b" ] -lt 小于,如:if [ "$a&quo…

转换和编辑的sony的MTS硬盘摄像机格式文件。

用到的工具 1.转换工具-- Wondershare Video Converter Platinum 4.2.0.56 序列号ab.com9256EA34D0BEE43FE1A4AB3913C4EF37 或29B4E80B7651680E201BDD0D74A6C00E 先将MTS文件改名为M2TS&#xff0c;然后用该软件转换成MPG文件 2.编辑工具-电影魔方 金牛版2009 序列号&#x…

httpSession的正确理解

关于HttpSession的误解实在是太多了&#xff0c;本来是一个很简单的问题&#xff0c;怎会搞的如此的复杂呢&#xff1f;下面说说我的理解吧&#xff1a;一个session就是一系列某用户和服务器间的通讯。服务器有能力分辨出不同的用户。一个session的建立是从一个用户向服务器发第…

RequestDispatcher提供两个方法:forward,include有什么区别

都表示要跳转到其他资源&#xff0c;不同的是&#xff0c;如果使用forward跳转则后面的response输出则不会执行&#xff0c;而用include来跳转&#xff0c;则include的servlet执行完后&#xff0c;再返回到原来的servlet执行response的输出&#xff08;如果有&#xff09;。如&…

JDBC通过连接池链接数据库总是失败的解决办法

应用服务器&#xff1a;glassfish JDBC通过连接池链接数据库总是失败,通过查看日志&#xff0c;发现是APACHE报DHCP 错误&#xff0c; 只需要通过访问4848端口的管理程序&#xff0c;重新PING下JDBC当前连接池即可。

JSP--(使用请求转发的动作标识jsp:forward)

版权声明&#xff1a;To be or not to be, thats a question. https://blog.csdn.net/qq_32823673/article/details/79542554 </div><link rel"stylesheet" href"https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-d7e2a68c7…

SQL搜索精华语句

一、 简单查询 9HW M C3k X"o hy X153092  简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的表或视图、以及搜索条件等。T%f r8\ Q"w153092  例如&#xff0c;下面的语句查询testtable表中姓名为"张三"的nic…

北大青鸟组建与维护企业网络高级技术PPT课件

北大青鸟组建与维护企业网络高级技术PPT课件主要是思科技术和一些协议又OSPF STP VTP NAT ACL PPP 三层交换等记住一定要一起解压转载于:https://blog.51cto.com/854090/171284

DB2中admin_cmd执行load

CREATE PROCEDURE ADMINISTRATOR.load_test() LANGUAGE SQLBEGINdeclare sql1 varchar(200);declare sql2 varchar(200);set sql1select * from yh.t;set sql2yh.t1;call sysproc.admin_cmd(load from (||sql1||) of cursor insert into ||sql2);END;本文来自: IXPUB技术社区(w…