多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > web前端 > htmlcss > javascript基礎

javascript基礎

來源:程序員人生   發布時間:2015-01-02 10:35:56 閱讀次數:2712次
javascript基礎
1.理解javascript基礎知識
(1)理解數值
在javascript中,所有數值都是64位雙精度,也就是說javascript中整數和浮點數之間并沒有甚么區分
二者都是數值.
typeof 1
//number
typeof 1.5
//number
(2)javascript中沒有內置的10進制數據類型,但javascript為數字提供了兩個方法:toPrecision()和foFixed()
這兩個方法可以依照固定位數的小數來格式化數值
var num=13.433
num.toFixed(2);
//13.43
var num=1232.4343
num.toPrecision(5);
//1232.43
注意:如果使用1個超越64位范圍的數值,或得到1個超越64位范圍的值,javascript將返回1個特殊數值
:-Infinity(負無窮大)或Infinity(無窮大),除數為0將返回1個Infinity,其他特殊值還包括NaN,它表示
1個"非數值",當試圖將1個無效字符串對象轉換1個數值時,結果為NaN,在NaN值和數值之間履行1個操作
將返回1個NaN值,可使用內置的isNaN()函數來檢查1個變量是不是是NaN值
10*1+100-NaN
//NaN
var x=NaN
isNaN(x)
true
(3)javascript支持8進制和106進制,8進制字面量用1個0作為前綴,106進制數值則以1個x作為前綴
(4)javascript內置的Math對象用于常見的數學運算,可使用Math.round()方法或得兩位數的精度
Math.round(.2+.3)/100;
(5)使用字符串:字符串是1個由0個或多個16位unicode字符組成的系列,使用單引號或雙引號將字符串括起
字符串也是不可變對象,因此字符串具有1些相應的屬性和方法
"test.javascript".indexOf("s");
//2
"test.javascript".charAt(3);
//t
(6)布爾類型
Boolean類型表示true值和false值,在適當的上下文中,比如在1個if語句中,任何條件判斷的值都將被轉化為Boolean
值以判斷"真"或"假"在條件判斷中,空字符串,NaN值,null,undefined,數值0和關鍵字false都將被計算false其他的任何值
都將被計算為true
if(""){
Console.log("something happen");
}
else{
console.log("nothing happen");
}
//nothing happen
javascript支持的Boolean操作包括,邏輯與(&&)邏輯或(||)邏輯非(!)
function validate(){
var name_input="Jimmy";
var age_input;
return name_input&&age_input;
}
if(validate()){
console.log("pass");
}else{
console.log("fail");
}
//fail


NaN值表示1個非數值的值
typeof NaN
//number
(6)類型之間的比較
javascript具有等于(==)和同等(===)操作符,==操作符是危險的,由于他在履行比較前,強迫履行類型
轉換
1=="1"
//true
如果左操作數和右操作數真正完全相同===才會返回true
1==="1"
//true
(7)日期簡介
javascript內置了Date對象,可使用new操作符和Date()構造函數來創建Date對象,Date對象用于表示日期和
時間,不帶任何參數創建1個新的Date對象,取得的是1個表示當前日期和時間的Date對象
var thisMoment=new Date();
console.log(thisMoment);
//thisMoment.getFullYear();
//2014
(8)其他類型
聲明1個變量未對其賦值,或訪問1個不存在的對象屬性,結果將會產生1個undefined類型
null是javascript的1個內置對象,它表示沒有值,在履行比較運算時,undefined和null二者被轉換false
Number
String
Boolean
Object
Function
Array
Date
Regex
Null
Undefined
在使用try...catch語句中,某些附加的內置的error類型非常有用,通常在throw語句中新建error對象
(9)變量
可以通過賦值操作(隱式聲明)或通過var關鍵字(顯示聲明)來為聲明1個變量,可使用var關鍵字來
聲明變量,則該變量是持久的,且不能刪除該變量,對1個變量可以屢次進行聲明,沒必要擔心產生任何
毛病,由于初始化的變量會被賦值為undefined
i=0;//隱式聲明
var i=0;//顯示聲明
var x;//undefined
作用域是指變量和對象的可見范圍,全局變量global在利用程序的任何地方都是可見的,而局部變量則
在聲明該變量的函數內可見
function where(){
var v1="local scope";
v2="globe scope";
}
where();
console.log(v1);//v1 is not undefined
console.lon();//globe scope


2.函數和對象
對象是屬性的集合,每個屬性是1個名稱和值,屬性可以包括除undefined以外的任何類型,在創建對象
以后,可以對屬性進行賦值,數組,函數和正則表達式都是對象,數值(number)字符串(string)和布爾值都是
對象(boolean)但他們是不可變的對象,可以采取兩種方法來實例化1個對象
(1)使用new關鍵字來實例化1個對象
var myObject=new Object();
new關鍵字將調用構造函數(構造器),構造器將初始化新創建的對象,this關鍵字用于援用當前對象,不能對它進行
賦值,但可以將this關鍵字賦值給另外1個變量
//構造函數
function Zombie(name){
this.name=name;
}
var smallZombie=new Zombie("Google");
(2)另外1種實例化變量的方法是使用對象字面量,這類方式創建的字面量更像其他語言中的散列或關聯數組
var myObject={}
var objectWithProperty={
"property1" : "a string value",
"property2" : 12
}
兩種方法訪問屬性
objectWithProperty.property1
//a string value
objectWithProperty['property']
//a string value
var species{
'mamal'{
'name':'string'
}
}
console.log(species.namal.name);
//string
javascript是1種動態語言,因此更新1個屬性只需要重新對屬性賦值便可,需要從對象中移除1個屬性
使用delete操作符,要遍歷對象的所有屬性使用for...in循環
var obj={
'property':1,
'property':2
}
var i;
for(i in obj){
console.log(i);
}
//property1
//property2
javascript使用原型繼承(prototypal inheritance),對象直接從其他對象繼承,從而創建新的對象,簡而言之
對象繼承了另外1個對象的屬性,javascript中沒有類(原型就是其他對象的模型)


3.javascript的作用域,閉包和履行上下文
1個內置對象Object.property位于繼承層次的頂端,所有其他對象都繼承了該對象,在繼承樹中的每一個對象

都可以通過prototype屬性鏈連接起來

//對象和函數的關系
var fn=function(){};
console.log(fn instanceof Object);//true
對象是1種函數
function fn(){
this.name="zhangsan",
this.age=10;
}
var fn=new fn();
對象可以通過函數來創建
對象都是通過函數來創建的
var obj={a:10,b:10};
var arr=[2,3,'x'];
以上代碼的本質是:
var obj=new Object();
obj.a=10;
obj.b=10;
var arr=new Array();
arr[0]=5;
arr[2]='x';
...
console.log(typeof(Object));//function
console.log(typeof(Array));//function
//當創建新的對象時,請注意如何初始化對象
//obj1和obj2都是援用同1個對象
var obj1=obj2={};
//obj1和obj2不是援用同1個對象
var obj1={};
var obj2={};


//對象是自知的(self aware),也就是說對象知道自己的屬性。要檢查某個屬性是不是存在。可使用hasOwnProperty()方法,
該方法將返回1個Boolean值



獲得屬性都是通過delegation實現的,當試圖獲得1個不存在的屬性時,javascriptIan將從原型對象查找該屬性
,如果仍然沒有找到該屬性,則javascript將沿著原型樹(prototype tree)向上查找,直到找到原始的Object.prototype
以后,如果仍然沒有找到該屬性,則javascript解析器將放棄查找并返回1個undefined
funcion Monster(type){
this.type=type;
}
Monster.prototype.getType=function(){
return this.type;
}
function Zombie(name){
this.name=name;
}
Zombie.prototype=new Monster();
Zombie.prototype.eatPeople=function(){
conlose.log("test");
}
援用(referrence)是1個指向對象實例位置的指針,Object是援用類型,由于所有的對象都是通過援用傳遞的,修改與1個

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 一区二区三区四区无限乱码在线观看 | 一级欧美激情毛片 | 激情粉嫩精品国产尤物 | 欧美色欧美色 | 久久久精品免费 | 秋霞毛片 | 亚洲国产欧洲精品路线久久 | 成人黄页网站 | 日本www在线播放 | h 在线播放 | 国产福利资源在线 | 亚洲综合五月 | 精品一区二区三区自拍图片区 | 亚洲一区二区三区在线网站 | 波多野结衣亚洲一区二区三区 | 亚洲欧美另类小说 | 在线观看国内自拍 | 亚洲黄色片网站 | 成人欧美一级毛片免费观看 | 永久免费视频v片www | 亚洲天堂中文字幕在线观看 | 中文字幕一区二区三区免费看 | 成人中文字幕在线 | 欧美成人三级一区二区在线观看 | 三级欧美在线 | 午夜免费播放观看在线视频 | 一级做a爰片久久毛片人呢 一级做a爰片久久毛片图片 | 亚洲图片激情小说 | 一级毛片一级毛片一级毛片aaav | 欧美激情二区 | 免费播放成人生活片 | 亚洲国产欧美精品一区二区三区 | 国产精品一区二区三区高清在线 | 国产福利乳摇在线播放 | 9丨精品国产高清自在线看 ⅹxx日本护土 | 国产zzzwww在线观看 | 亚洲精品中文字幕字幕 | 欧美成人三级一区二区在线观看 | 九色欧美 | 99国产精品农村一级毛片 | 亚洲精品永久www忘忧草 |