一句话来说:原始值是不可变的,而对象引用是可变的。

js中的原始值(undefined、null、布尔值、数字和字符串)与对象(包括数组和函数)有着本质的区别。原始值是不可更改的,任何方法都无法更改一个原始值;对于字符串来说,字符串中所有的方法看上去返回了一个修改后的字符串,实际上返回的是一个新的字符串值:

var str="hello world";
s.toUpperCase();
s;          //仍然不变

原始值的比较是值的比较:只有它们的值相等时它们才想等。

对象和原始值不同,首先它们是可变的;其次对象的比较并非值的比较;对象的比较皆为引用的比较:当且仅当它们引用同一个基本对象时,它们才想等。

若想比较2个单独的对象或数组,必须比较它们的属性或元素,如下所示:

function equ_arrays(a,b){
    if(a.length != b.lenght) return false;
    for(var i=0;i<a.length;i++)
        if(a[i] !== b[i]) return false;
    return true;
}

最新文章

  1. MyBatis传入多个参数的问题
  2. Java 线程的转换及状态
  3. Java图形化用户界面(GUI)笔记(一)介绍
  4. 如何解决sublime text 2总是在新窗口中打开文件及文件夹
  5. Android深度探索--HAL与驱动开发----第三章读书笔记
  6. 如何终止java线程
  7. Jmeter组件5. 逻辑控制
  8. ASP.NET MVC3 Model验证总结(转)
  9. ldconfig deferred processing now taking place
  10. C#中正则表达式的使用
  11. makefile中的自动化变量 【转】
  12. 关于Android中TextView显示多个空格
  13. Android Developers:两个视图渐变
  14. C#-高血压生活习惯数据模拟
  15. HttpServletRequest 报错 myeclipese支持tomcat
  16. HDU 4664 Triangulation【博弈论】
  17. JPA @PersistenceContext和@Transactional Annotation
  18. 解决curl中errno为51和60的错误
  19. 线性回归中常见的一些统计学术语(RSE RSS TSS ESS MSE RMSE R2 Pearson&#39;s r)
  20. java新知识系列 五

热门文章

  1. 学习TensorFlow,TensorBoard可视化网络结构和参数
  2. 剑指Offer——CVTE校招笔试题+知识点总结(Java岗)
  3. javascript之Style对象
  4. 插件开发之360 DroidPlugin源码分析(一)初识
  5. 04 AutoCompleteTextView
  6. 概率论:假设检验-t检验和Augmented Dickey–Fuller test
  7. web中间件切换(was切tomcat)
  8. J2EE学习从菜鸟变大鸟之七 Servlet
  9. StarUML中InteractionOperation的画法
  10. UNIX环境高级编程——线程属性之分离属性