JavaScript变量可能分为两种不同数据类型的值:
asj易塔云建站-模板下载,web开发资源,技术博客asj易塔云建站-模板下载,web开发资源,技术博客一、基本类型值。asj易塔云建站-模板下载,web开发资源,技术博客asj易塔云建站-模板下载,web开发资源,技术博客基本类型值:简单的数据段。undefined null Boolean number string。
asj易塔云建站-模板下载,web开发资源,技术博客如何访问:以上5种数据类型是
按值访问,因为可以操作保存在变量中的实际值。
asj易塔云建站-模板下载,web开发资源,技术博客操作属性:(无法操作属性)
var name = "名字2";asj易塔云建站-模板下载,web开发资源,技术博客
name.age = 30;asj易塔云建站-模板下载,web开发资源,技术博客
console.log(name.age);//undefined
复制变量值:
var num1 = 5;asj易塔云建站-模板下载,web开发资源,技术博客
var num2 = num1;asj易塔云建站-模板下载,web开发资源,技术博客
num1+=1;asj易塔云建站-模板下载,web开发资源,技术博客
num2+=2;asj易塔云建站-模板下载,web开发资源,技术博客
console.log(num1);asj易塔云建站-模板下载,web开发资源,技术博客
console.log(num2);
asj易塔云建站-模板下载,web开发资源,技术博客asj易塔云建站-模板下载,web开发资源,技术博客二、引用类性质。asj易塔云建站-模板下载,web开发资源,技术博客asj易塔云建站-模板下载,web开发资源,技术博客引用类型值:可能由多个值构成的对象(Object)。是保存在内存中的对象。
asj易塔云建站-模板下载,web开发资源,技术博客如何访问: js不允许直接访问内存中的位置,不能操作对象的内存空间。在复制对象时,实际是在操作对象的引用,而不是实际的对象。所以引用类型值是
按引用访问的。
在JavaScript中,可以使用“ . ”和“ [ ] ”来访问对象的属性。
var objectW = {asj易塔云建站-模板下载,web开发资源,技术博客
name:"word文档",asj易塔云建站-模板下载,web开发资源,技术博客
pic:"/data/images/win7.jpg",asj易塔云建站-模板下载,web开发资源,技术博客
editFile: function(){asj易塔云建站-模板下载,web开发资源,技术博客
//单击,选中,删除,回车等动作。。。asj易塔云建站-模板下载,web开发资源,技术博客
if(true){asj易塔云建站-模板下载,web开发资源,技术博客
//鼠标右键asj易塔云建站-模板下载,web开发资源,技术博客
this.fileRightKey();asj易塔云建站-模板下载,web开发资源,技术博客
}asj易塔云建站-模板下载,web开发资源,技术博客
if(true){asj易塔云建站-模板下载,web开发资源,技术博客
//双击全选此行asj易塔云建站-模板下载,web开发资源,技术博客
this.doubleClick();asj易塔云建站-模板下载,web开发资源,技术博客
}asj易塔云建站-模板下载,web开发资源,技术博客
}, asj易塔云建站-模板下载,web开发资源,技术博客
fileRightKey: function(){asj易塔云建站-模板下载,web开发资源,技术博客
console.log("监听鼠标,如果在可编辑区域内点击了鼠标右键,那么");asj易塔云建站-模板下载,web开发资源,技术博客
},asj易塔云建站-模板下载,web开发资源,技术博客
doubleClick : function(){asj易塔云建站-模板下载,web开发资源,技术博客
console.log("你双击了鼠标左键,那么。。。");asj易塔云建站-模板下载,web开发资源,技术博客
}asj易塔云建站-模板下载,web开发资源,技术博客
}asj易塔云建站-模板下载,web开发资源,技术博客
var obj1 = objectW.name;asj易塔云建站-模板下载,web开发资源,技术博客
var obj2 = objectW.editFile();asj易塔云建站-模板下载,web开发资源,技术博客
console.log(obj2);
操作属性:(操作内存)在给对象添加属性时,操作的是实际的对象(也就是内存)。
asj易塔云建站-模板下载,web开发资源,技术博客复制变量值:
var obj1 = objectW;asj易塔云建站-模板下载,web开发资源,技术博客
var obj2 = obj1;asj易塔云建站-模板下载,web开发资源,技术博客
obj1.name = "改变";asj易塔云建站-模板下载,web开发资源,技术博客
console.log(obj1.name);//改变asj易塔云建站-模板下载,web开发资源,技术博客
console.log(obj2.name);//改变
复制变量下,不管是obj1还是obj2,都是副本,只是有新旧。它们都指向着原型对象,或者叫父对象。因为是通过引用连接的,所以改变了其中任一个,三者都属性都改了。
asj易塔云建站-模板下载,web开发资源,技术博客exl中的对象是这个意思,其实就是一些方法和属性的组合,最后起个版权名字。asj易塔云建站-模板下载,web开发资源,技术博客asj易塔云建站-模板下载,web开发资源,技术博客asj易塔云建站-模板下载,web开发资源,技术博客asj易塔云建站-模板下载,web开发资源,技术博客内存中存在一些默认定义好的原型对象,保存在堆内存中(堆内存:就是杂乱无章法的把衣服堆在那;栈内存:就是有规则的整理好,快速使用,受限使用),区别查看这里:
https://zhuanlan.zhihu.com/p/118168534。
asj易塔云建站-模板下载,web开发资源,技术博客asj易塔云建站-模板下载,web开发资源,技术博客