javascript
javascript中对象、JSON格式数据、创建对象的方式、数据类型分类及特点
對象
對象指:具體的一個實物,javascript中對象是指一組沒有順序的屬性和方法的集合,所有的事物都是對象,例如:函數,數組,字符串等。屬性指事物的特征,一般為名詞表示;方法指對象的行為,一般用動詞表示。對象使用來存儲一組沒有規律的信息的數據類型。
JSON格式的數據:
一般都是成對的,是鍵值對。JSON也是一個對象,數據都是成對的,一般JSON格式的數據無論是鍵還是值,都是用雙引號引起來的,JSON對象在IE8以下是不兼容的,如果需要兼容IE8以下,那么可以使用插件:json3.js:
//編程思想:把生活中的事融入到程序中//面向過程:凡是親力親為,每件事的過程都要知道,注重的是過程。//面向對象:根據要求找對象,所有的事都要對象來做,注重結果。//面向對象的特征:封裝,繼承,多態(抽象性)//JavaScript不是面向對象語言,但是可以模擬面向對象思想。//JavaScript是基于對象的語言。//對象:看得見,摸得著,具體特質的東西。//面向對象有什么特點:特征和行為//instanceof判斷一個變量的數據類型,具體方法:變量 instanceof 數據類型,返回的是布爾值。創建對象的方式:
1.通過字面量的方式創建對象:js中以字面量的方式創建對象使用{},如:var obj = {}一個空對象;給對象添加屬性:屬性名:屬性值,每個屬性之間用逗號隔開;給對象添加方法:方法名:function(){},每個方法之間用逗號隔開;調用對象的屬性:對象名.屬性名或對象名[‘屬性名’],調用對象的方法:對象名.方法名();
<script>var obj = {nameObj: 'obj',age: 18,sex: '男',say: function() {console.log('hello');},play: function() {console.log('play basketball')}};console.log(obj.age); //18console.log(obj['sex']); //男obj.say();//hello</script>2.調用系統的構造函數創建對象:new Object();同樣是一個空對象,這種方法添加屬性的方式為:對象名.屬性名 = 屬性值;添加方法的方式:對象名.方法名 = function(){};每個屬性和方法之間用封號隔開,其調用和字面量的方式一樣。
<script>var obj = new Object();obj.name = '涵涵';obj.age = 18;obj.sex = '男';obj.say = function() {console.log('hello');};console.log(obj.age); //18console.log(obj['sex']); //男obj.say(); //hello</script>3.自定義構造函數創建對象:以上兩種方式不能重復創建對象,如果創建新對象,那么就要重新聲明,通過構造函數的方式可以一次性創建多個對象,以便解決代碼重復問題。自定義構建函數創建對象做的事:1,在內存中開辟(申請)空間,存儲創建的新對象2,把this設置為當前對象3,設置對象的屬性和方法4,把this這個對象返回;遍歷對象是通過for-in來實現的,其中變量是對象的屬性,對象[變量]拿到的才是屬性值;
<script>function Student(names, age) {this.names = names;this.age = age;this.say = function(says) {console.log(says);};};var stud1 = new Student('小明', 18);console.log(stud1.names); //小明stud1.say('hello'); //hellovar stud2 = new Student('涵涵', 15);console.log(stud2.age); //15stud2.say('你好'); //你好function Student(names, age) {this.names = names;this.age = age;this.say = function(says) {console.log(says);};};var stud1 = new Student('小明', 18);for (var k in stud1) {// console.log(k); // name age sayconsole.log(stud1[k]);// 小明 18 ? (says) {console.log(says);}};</script>工廠模式創建對象(不是一種方式):
工廠模式創建對象和構造函數創建對象其共同點是:都需要自定義函數;其不同點:工廠模式創建對象函數名首字母小寫,函數中要new Object(),有返回值,創建時不需要new的方式(通過構造函數創建對象函數名首字母大寫,函數中不需要寫new Object(),無返回值,創建時需要new的方式),
<script>function person(name, age, height, weight) {var obj = new Object();obj.name = name;obj.age = age;obj.height = height;obj.weight = weight;obj.play = function() {console.log('打游戲');}return obj;};var person1 = person('jack', 18, 170, 50);console.log(person1.name);</script>數據類型分類及之間的特點:
// 原始數據類型:number string boolean undefined null object// 基本類型(簡單類型,值類型):number string boolean// 復雜類型(引用型):object// 空類型:undefined null// 值類型的值儲存在:棧中// 引用類型的值儲存在:地址在棧上儲存,對象在堆上儲存// var num = 10;//值類型,值在棧上// var obj = {};//復雜類型,對象在堆上,地址(引用)在棧上// 值類型之間的傳遞,傳遞的是值// 引用類型間的傳遞,傳遞的是地址(引用)// 值類型作為函數的參數,傳遞的是值// 引用型作為函數的參數,傳遞的是地址 <script>var num1 =10;var num2 = num1;num1 = 20;console.log(num1);//20console.log(num2);//10var num = 50;function f1(num){num = 60;console.log(num);//60}f1(num);console.log(num);//50;var num1 = 55;var num2= 66;function f1(num,num1){num = 100;num1 = 100;num2 = 100;console.log(num);//100console.log(num1);//100console.log(num2);//100}f1(num1,num2);console.log(num1);//100console.log(num2);//100console.log(num);//報錯,函數里面的num相當于外面的num1,所以沒有num這個變量function Person(name,age,salary){this.name=name;this.age=age;this.salary=salary;}function f1(person){person.name='小明';person = new Person('慧慧',20,1000);}var p =new Person('敏敏',30,10);console.log(p.name);//敏敏f1(p);console.log(p.name);//小明</script>提示:本文圖片等素材來源于網絡,若有侵權,請發郵件至郵箱:810665436@qq.com聯系筆者刪除。
筆者:苦海
總結
以上是生活随笔為你收集整理的javascript中对象、JSON格式数据、创建对象的方式、数据类型分类及特点的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 城市轨道交通运营管理属于什么院系_专业介
- 下一篇: JSON数据、字符串拼接、宽字符处理、数