JS 零散知識點

2022-09-17 20:45:19 字數 4507 閱讀 2448

1.簡單的clone方法

mysqlstore.prototype.clone = function

(object)

另外其他clone,如:

args = args ? args.slice(0) : ; //

clone array to **oid changing the original

options = object.assign({}, options); //

clone object to **oid changing the original

2.在函式中給物件賦值

function

a()var data ={};

a(data=);//y

console.log(data.x);

3.物件和陣列的區別之一

function

a();

//x=undefined

var option = ['a']; //

x=1 console.log("x="+option.length);

}a(); //陣列有長度,物件沒有。

4.判斷語句中0和{}的地位

if(0)

else

//kk

var x ={};

console.log({}?"xx":"yy");

//xx

//0為false,"0"為true,,{}為true

5.void的作用

function

b()function

a()var x =a();

console.log("x=",x); //

undefined

//如果去掉void,則x=c;

6.詭異**

function

a()

return

}var options =a(); //b()已經執行

console.log(options);

//

詭異之處在與執行a(),b()也執行了,如果是b,就不執行。

7. 引用賦值

var x ={};

var y =x;

y.x1 = "y1";

console.log("x=",x);

//x=

如果這樣:

var x ={};

var y =x;

y =;

console.log("x=",x);

//x= {}

8.引用

var vm  ={};

var vnode =;

var prevvnode =vm._vnode;

//prevnode為指令碼型別,指定即不能變化

console.log("before prevvnode is:",prevvnode); //

undefined

console.log("before vm._vnode is:",vm._vnode); //

undefined

vm._vnode =vnode; // 重新賦值了

console.log("after prevvnode is:",prevvnode); //

undefined

console.log("after vm._vnode is:",vm._vnode); //

9.isobject和isplainobject的區別

var _tostring =object.prototype.tostring;

function

isobject (obj)

function

isplainobject (obj)

console.log(isplainobject({}));

console.log(isobject());

10.小套路

return

typeof def === 'function' && gettype(prop.type) !== 'function'

? def.call(vm) //

把def函式中的this繫結到vm上,返回def函式中

//return的內容

: def

在vue中,vue例項的選項很多可以是function或者object,對應function中可能會引用例項中的資料,那麼在賦值的時候需要相容下:

typeof childval === 'function' ? childval.call(this, this

) : childval

//或者

childval.call(vm, vm)

11.decodeuricomponent

可以用多次,有時候也必須用多次。

12.例項獲取到物件的方法

//

兩層意思,1 個vue.掛個靜態成員functionalrendercontext

function

vue ()

vue.options ={}

vue.options =

}var vue = new

vue();

console.log(vue.constructor)

// } }

console.log(vue.constructor.options)

// }

13.陣列也是引用型別

var arr = [1, 3, 4, 5]

var kk =arr

kk.splice(0, 2)

console.log('arr:', arr) //

[4,5]

//如何解決陣列的硬拷貝了,有兩種方法

1.object.assign()

2.操作符(...)

let a =[1,3,5];

let b = object.assign(, a);

b.push('7');

console.log('b=', b) // [1,3,5,'7']

console.log('a=', a) // [1, 3, 5]

又如:

function

processrawattrs (el) }}

else

if (!el.pre)

}var el =]

};processrawattrs(el);

console.log(el.attrs);

//[ ]

14.函式式申明優先順序比函式定義要高,

function

getname()

var getname = function

() getname();

//4, 涉及變數提示,第乙個函式 foo 是乙個完整的函式宣告,沒有涉及到賦值,賦值定義的函式會在執行期間覆蓋變數提公升。

15.unicode和字串相互轉化

//

字串轉unicode碼

"中".charcodeat(0); //

20013

//unicode碼轉字元中

string.fromcharcode(20013) //中//

將unicode碼轉16進製制

"中".charcodeat(0).tostring(16) //

4e2d

16. \n

var a =`

`;console.log(a === '\n');//

true \n為換行

17.獲取乙個dom節點的類的陣列

p.classlist //

classlist為陣列。新增樣式。 p.classlist.add('msg')

//刪除 p.classlist.remove('msg')

零散知識點

魔術變數 echo 這是第 line 行 當前行號 echo 該檔案位於 file e wamp www test index.php 絕對路徑 echo 該檔案位於 dir e wamp www test 等價於 dirname file echo 命名空間為 namespace 當前命名空間的名...

零散知識點

一 sendmessage 和broadcastmessage 在了解專案結構的前提下,sendmessage 和broadcastmessage 方法使用起來非常靈活而且容易實現,但它使用了反射,而反射會造成更多的cpu開銷。在清楚要呼叫哪個元件的哪個方法時應該通過元件的引用直接呼叫方法 在不清楚...

零散知識點記錄

設定uiview的陰影效果 self.view layer setshadowoffset cgsizemake 2,2 self.view layer setshadowradius 6 self.view layer setshadowopacity 1 self.view layer sets...