javascript的变量类型(图)
javascript的变量范例真的很要人纠结,纵然你是很有履历的js工程师,你也很难说清晰js的范例和分类。 最近在讲javascript入门指南的时辰,有人提出数组为什么不是根基范例,我通过演示typeof []的功效来声名,数组是工具范例派生出来的,而不是六种根基范例。 着实要领略javascript的变量范例很简朴,就是我们要找到一个分另外尺度。 javascript变量范例分类在许多书中都提到了javascript的变量范例,每本书都有差异的分别尺度,假如凭证typeof和instanceof的返回值来区分,可以把javascript的变量范例分为两套范例体系:根基范例和工具范例衍生出来的工具范例体系。 var a = new Number(123); console.log(a.valueOf()===123);//true var b = new String(123); console.log(b.valueOf()===123);//false console.log(b.valueOf()==='123');//true obj.valueOf()返回的是该工具的原始值。 值范例和引用范例
值范例示例var a = 123; var b = a; a = 1; console.log(b);//123 引用范例示例var c = [1,2,3]; var d = c; d[0] = 4; console.log(c);//[4,2,3] 值范例和引用范例表明望见上面的示例,有些人也许就晕了,许多人一不警惕就改变了引用范例的值,而本身还不清晰措施呈现了什么题目! var c = {site:'js8.in'}; var d = c; var e = d.site; d.site = 'weibo.com'; console.log(e);//js8.inarguments的值 ECMAScript中函数的参数是按值转达的,当参数为引用范例值时便按引用转达是一种错误可能不全面的说法。 对付参数为根基范例值的环境,很轻易领略。但对付引用范例值的参数,却很轻易让人误解为是按引用转达的。如下面的例子: function fn(arg){ arg.site = 'js8.in'; arg = new Object(); arg.site = 'weibo.com'; } var obj = new Object(); fn(obj); console.log(obj.site)//js8.in console.log(window.arg);//undefined 示例中,假如arguments是凭证引用范例转达的,那么obj.site应该为weibo.com,可是功效却是js8.in。 究竟是这样的:当参数为引用范例值时简直是按引用转达的。 最其后一张周爱民大神的javascript范例相关图: (编辑:河北网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |