js?面向?qū)ο髮W(xué)習(xí)筆記
數(shù)據(jù)賦值拷貝
1、值得賦值是獨立的
num1=12; num1=num2
將存儲值賦值一份存儲.
2、引用類型的賦值共享數(shù)據(jù)
var age=22; age2=age; age=24 console.log(age);
age2依舊是22
引用類型的賦值共享數(shù)據(jù)
指向同一片內(nèi)存
3、對象的賦值
var p={ name:"shizi", age:22, } p1=p; console.log(p.name,p.age); console.log(p1.name,p1.age); console.log("------------------------"); p.name="maotai"; p.age=24; console.log(p.name,p.age); console.log(p1.name,p1.age);
值類型賦值--函數(shù)形參&實參
例一
var num = 10; function foo(num){ num=100; console.log(num); } console.log(num); #10
例二
var num = 10; function foo(num1){ //實參: 調(diào)用時傳遞的參數(shù) //形參: 定義時傳遞的參數(shù) num1=100; console.log(num1); } foo(num); console.log(num); # 10 100 10
例三
var num = 10; function foo(num1){ //實參: 調(diào)用時傳遞的參數(shù) //形參: 定義時傳遞的參數(shù) //var num1=num; num1=100; console.log(num1); } foo(num); console.log(num); # 10 100 10
引用類型賦值
var obj={ name:"宅男" } function jinhua(param){ param.name="高富帥"; } jinhua(obj); console.log(obj.name); #高富刷
var obj={ name:"宅男" } function jinhua(param){ param.name="高富帥"; //重新開辟內(nèi)存,param重新指向一片mem param={ name: "腐女" } param.name="宅男"; } jinhua(obj); console.log(obj.name); #宅男
對象的動態(tài)性
動態(tài)添加屬性和方法
p={ name:"劉德華", age:22 } //添加屬性方式1 p.gender="male"; //添加屬性方式2 p["salary"]=2000; //添加對象類型屬性 p.foo=function(){console.log("sing");} //訪問屬性方式1 console.log(p.foo()); console.log(p.salary); //訪問屬性方式2 console.log(p["name"];
p={ name:"劉德華", age:22 } p["salary"]=2000; //是字符串 console.log(p.salary);
p={ name:"劉德華", age:22 } p[0]=2000; //隱式將0轉(zhuǎn)換為字符串 //console.log(p.0); //發(fā)現(xiàn)這種方式訪問報錯 console.log(p["0"]); //這種方式正常訪問
以下等價
p={ name:"劉德華", age:22 } p[{}]="shizi"; console.log(p);
p={ name:"劉德華", age:22 } p["[object Object]"]="shizi"; console.log(p);
探究
a={} console.log(a.toString()); #"[object Object]"
delete刪除屬性
刪除對象的屬性
刪除未用var定義的變量.
- delete返回布爾
- 刪除不存在的屬性,返回true
- 無法刪除原形中的屬性 如 delete obj.toString()
resu=delete obj.name; # resu返回值是true
var num1=100; console.log(num1); console.log(window.num1); # 100 100
num1=100; console.log(num1); console.log(window.num1); # 100 100
var num1=100; delete(num1); console.log(window.num1); # 100
num1=100; //未使用var,可被delete刪除 delete(num1); console.log(window.num1); ## undefined
到此這篇關(guān)于js 面向?qū)ο蟮奈恼戮徒榻B到這了,更多相關(guān)js 面向?qū)ο髢?nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
IE之動態(tài)添加DOM節(jié)點觸發(fā)window.resize事件
因為頁面很多UI是絕對定位的,所以當(dāng)窗口大小改變的時候會使原先的布局混亂,只好在每次window.resize的時候重新布局...2010-07-07Javascript自定義函數(shù)判斷網(wǎng)站訪問類型是PC還是移動終端
如果,能夠判斷出訪問Web網(wǎng)頁的類型(PC還是移動終端)。就可以解決許多絢麗多彩的 Flash效果出不來的問題2014-01-01javascript性能優(yōu)化之分時函數(shù)的介紹
本篇文章主要介紹了javascript性能優(yōu)化之分時函數(shù)的介紹,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-03-03關(guān)于JavaScript中JSON的5個小技巧分享
這篇文章主要和大家分享五個JavaScript中的JSON技巧,例如:隱藏字符串化數(shù)據(jù)中的某些屬性、創(chuàng)建自定義輸出格式等,感興趣的小伙伴可以了解一下2022-03-03Bootstrap組件之下拉菜單,多級菜單及按鈕布局方法實例
這篇文章主要介紹了Bootstrap組件之下拉菜單,多級菜單及按鈕布局方法,結(jié)合完整實例形式分析了Bootstrap多級菜單布局相關(guān)樣式功能與具體使用技巧,需要的朋友可以參考下2017-05-05JavaScript中for循環(huán)的幾種寫法與效率總結(jié)
每個接觸JS的開發(fā)人員都不可避免的與for循環(huán)打交道,畢竟這是遍歷必不可少的工具之一。然而當(dāng)循環(huán)次數(shù)比較大時,效率問題必須重視。下面這篇文章就主要介紹了JavaScript中幾種for循環(huán)的寫法與效率,需要的朋友可以參考借鑒,下面來一起看看吧。2017-02-02利用prop-types第三方庫對組件的props中的變量進(jìn)行類型檢測
本篇文章主要介紹了利用prop-types第三方庫對組件的props中的變量進(jìn)行類型檢測的相關(guān)知識,具有很好的參考價值。下面跟著小編一起來看下吧2017-05-05