日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

javascript中对象、JSON格式数据、创建对象的方式、数据类型分类及特点

發(fā)布時(shí)間:2025/3/15 javascript 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 javascript中对象、JSON格式数据、创建对象的方式、数据类型分类及特点 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

對(duì)象

對(duì)象指:具體的一個(gè)實(shí)物,javascript中對(duì)象是指一組沒有順序的屬性和方法的集合,所有的事物都是對(duì)象,例如:函數(shù),數(shù)組,字符串等。屬性指事物的特征,一般為名詞表示;方法指對(duì)象的行為,一般用動(dòng)詞表示。對(duì)象使用來存儲(chǔ)一組沒有規(guī)律的信息的數(shù)據(jù)類型。

JSON格式的數(shù)據(jù):

一般都是成對(duì)的,是鍵值對(duì)。JSON也是一個(gè)對(duì)象,數(shù)據(jù)都是成對(duì)的,一般JSON格式的數(shù)據(jù)無論是鍵還是值,都是用雙引號(hào)引起來的,JSON對(duì)象在IE8以下是不兼容的,如果需要兼容IE8以下,那么可以使用插件:json3.js:

//編程思想:把生活中的事融入到程序中//面向過程:凡是親力親為,每件事的過程都要知道,注重的是過程。//面向?qū)ο?#xff1a;根據(jù)要求找對(duì)象,所有的事都要對(duì)象來做,注重結(jié)果。//面向?qū)ο蟮奶卣?#xff1a;封裝,繼承,多態(tài)(抽象性)//JavaScript不是面向?qū)ο笳Z言,但是可以模擬面向?qū)ο笏枷搿?/JavaScript是基于對(duì)象的語言。//對(duì)象:看得見,摸得著,具體特質(zhì)的東西。//面向?qū)ο笥惺裁刺攸c(diǎn):特征和行為//instanceof判斷一個(gè)變量的數(shù)據(jù)類型,具體方法:變量 instanceof 數(shù)據(jù)類型,返回的是布爾值。

創(chuàng)建對(duì)象的方式:

1.通過字面量的方式創(chuàng)建對(duì)象:js中以字面量的方式創(chuàng)建對(duì)象使用{},如:var obj = {}一個(gè)空對(duì)象;給對(duì)象添加屬性:屬性名:屬性值,每個(gè)屬性之間用逗號(hào)隔開;給對(duì)象添加方法:方法名:function(){},每個(gè)方法之間用逗號(hào)隔開;調(diào)用對(duì)象的屬性:對(duì)象名.屬性名或?qū)ο竺鸞‘屬性名’],調(diào)用對(duì)象的方法:對(duì)象名.方法名();

<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.調(diào)用系統(tǒng)的構(gòu)造函數(shù)創(chuàng)建對(duì)象:new Object();同樣是一個(gè)空對(duì)象,這種方法添加屬性的方式為:對(duì)象名.屬性名 = 屬性值;添加方法的方式:對(duì)象名.方法名 = function(){};每個(gè)屬性和方法之間用封號(hào)隔開,其調(diào)用和字面量的方式一樣。

<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.自定義構(gòu)造函數(shù)創(chuàng)建對(duì)象:以上兩種方式不能重復(fù)創(chuàng)建對(duì)象,如果創(chuàng)建新對(duì)象,那么就要重新聲明,通過構(gòu)造函數(shù)的方式可以一次性創(chuàng)建多個(gè)對(duì)象,以便解決代碼重復(fù)問題。自定義構(gòu)建函數(shù)創(chuàng)建對(duì)象做的事:1,在內(nèi)存中開辟(申請(qǐng))空間,存儲(chǔ)創(chuàng)建的新對(duì)象2,把this設(shè)置為當(dāng)前對(duì)象3,設(shè)置對(duì)象的屬性和方法4,把this這個(gè)對(duì)象返回;遍歷對(duì)象是通過for-in來實(shí)現(xiàn)的,其中變量是對(duì)象的屬性,對(duì)象[變量]拿到的才是屬性值;

<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>

工廠模式創(chuàng)建對(duì)象(不是一種方式):

工廠模式創(chuàng)建對(duì)象和構(gòu)造函數(shù)創(chuàng)建對(duì)象其共同點(diǎn)是:都需要自定義函數(shù);其不同點(diǎn):工廠模式創(chuàng)建對(duì)象函數(shù)名首字母小寫,函數(shù)中要new Object(),有返回值,創(chuàng)建時(shí)不需要new的方式(通過構(gòu)造函數(shù)創(chuàng)建對(duì)象函數(shù)名首字母大寫,函數(shù)中不需要寫new Object(),無返回值,創(chuàng)建時(shí)需要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>

數(shù)據(jù)類型分類及之間的特點(diǎn):

// 原始數(shù)據(jù)類型:number string boolean undefined null object// 基本類型(簡單類型,值類型):number string boolean// 復(fù)雜類型(引用型):object// 空類型:undefined null// 值類型的值儲(chǔ)存在:棧中// 引用類型的值儲(chǔ)存在:地址在棧上儲(chǔ)存,對(duì)象在堆上儲(chǔ)存// var num = 10;//值類型,值在棧上// var obj = {};//復(fù)雜類型,對(duì)象在堆上,地址(引用)在棧上// 值類型之間的傳遞,傳遞的是值// 引用類型間的傳遞,傳遞的是地址(引用)// 值類型作為函數(shù)的參數(shù),傳遞的是值// 引用型作為函數(shù)的參數(shù),傳遞的是地址 <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);//報(bào)錯(cuò),函數(shù)里面的num相當(dāng)于外面的num1,所以沒有num這個(gè)變量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>

提示:本文圖片等素材來源于網(wǎng)絡(luò),若有侵權(quán),請(qǐng)發(fā)郵件至郵箱:810665436@qq.com聯(lián)系筆者刪除。
筆者:苦海

總結(jié)

以上是生活随笔為你收集整理的javascript中对象、JSON格式数据、创建对象的方式、数据类型分类及特点的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。