JavaScript基礎(chǔ)知識(shí)

一.JavaScript數(shù)據(jù)類型
JavaScript數(shù)據(jù)類型分為基本數(shù)據(jù)類型和引用數(shù)據(jù)類型:
1.基本數(shù)據(jù)類型:number,String,boolaen,null,undefined
1.1 number 包含小數(shù)和整數(shù);String包含所有的字符串和字節(jié);boolaen布爾型的值分為true和false(js中更多和Java相同,在python中布爾值為首字符大寫);null表示指向?yàn)榭?;undefined表示未定義,當(dāng)變量只聲明未賦值或者函數(shù)無返回值時(shí)都為undefined。
2.引用數(shù)據(jù)類型:Array,object
2.1 Array表示數(shù)組,類似python中的list;object表示對(duì)象類型。所謂引用數(shù)據(jù)類型,是指其值是指向棧內(nèi)存中某一存儲(chǔ)空間。
3.實(shí)例代碼

目前創(chuàng)新互聯(lián)建站已為千余家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)絡(luò)空間、網(wǎng)站運(yùn)營、企業(yè)網(wǎng)站設(shè)計(jì)、紅山網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

var a=10;    //定義int整數(shù)
var b = 10.00;   //定義小數(shù)
var c = 12.3;    //定義小數(shù)
console.log('a:'+typeof(a))  //查看變量a的數(shù)據(jù)類型
console.log('b:'+typeof(b))  //查看變量b的數(shù)據(jù)類型
console.log('c:'+typeof(c))  //查看變量c的數(shù)據(jù)類型
var d ='abc';    //定義字符串
var e = b+d;     //通過賦值語句定義字符串
console.log(e)
var f;
console.log(f)  //undefined 1.只定義了,沒有賦值聲明;2.函數(shù)無返回值;

4.數(shù)組的常見操作

//產(chǎn)生數(shù)組的方式1(與Java不同的是,在js中定義數(shù)組時(shí)可以不指定長度;但是在Java中定義數(shù)組必須要指定長度,以便內(nèi)存分配好指定長度的內(nèi)存空間)
  var array = new Array();
  array[0]=12;
  array[1]='you';
//產(chǎn)生數(shù)組的方式2
  var array1 = [12,4,'what',[12,'ip'],'soga'];
  var dic = {'name':'zhangsan','age':25,2:'you'};
  var a2=[12,8,2,36,89,450,100,260]
  console.log('array1='+array1);
  console.log('dic = '+dic);
//  Arrar,數(shù)組的相關(guān)操作
    var array1 = new Array(3);
    array1[0]=13;
    array1[1]=34;
    array1[2]=26;
    array1[3]=17;
   var array2=[12,34,56,78,89];
//   concat()數(shù)組插入操作,且是將括號(hào)中整體插入到原數(shù)組的最后面
   var array3 = array1.concat(array2)
    console.log('array3='+array3);
   for(var i=0;i<array3.length;i++){
       console.log('array3['+i+']='+array3[i]);
   }
   //unshift()數(shù)組插入操作,且是將括號(hào)中整體插入到原數(shù)組的最前面
    var  array4 = array1.unshift([1,5,75])
    array1.unshift(true,'no')

//    document.write(array4);
    console.log(array1)
    console.log(array4,typeof(array4))
//shift()數(shù)組刪除操作,且刪除原數(shù)組的第一個(gè)元素
    array1.shift()
    console.log(array1)
//   sort 排序操作,按最高位(例如:a = [8,123],則a.sort(),a=[123,8])的按從小到大排序
//   reverse 排序操作,按最高位(例如:a = [8,123,34,10],則a.reverse(),a=[8,34,123,10])的按從小到大排序
    array1.sort()
    array2.reverse()

//自定義函數(shù)來按數(shù)組元素的數(shù)值大小正常排序
     function sort(array1) {
         /*自定義數(shù)組排序(正常排序)*/
         temp1=array1[0];
         for(var i=0;i<array1.length;i++){
             // a=array1[i];
             for(var j=i+1;j<array1.length;j++){
                 if(array1[i]>array1[j]){
                     temp1 =array1[i];
                     array1[i]=array1[j];
                     array1[j]=temp1;
                 }
             }
         }
         return array1;
     }

二.JavaScript基本語法
2.1定義變量--作用域、變量聲明周期
2.1.1 Js中定義變量需要使用關(guān)鍵字var,定義變量格式如下:
var 變量名 = 變量值;
2.1.2變量作用域:
1.局部變量:函數(shù)內(nèi)部的使用var聲明的變量;
2.全局變量:函數(shù)內(nèi)部沒有使用var聲明的變量和函數(shù)外面使用var聲明的變量;
例如:

 var bb=123; #全局變量
    function foo() {
        cc='you';   #全局變量
        var dd='what';  #局部變量
        return bb;
    }

2.1.3 函數(shù)生命周期
1.局部變量:從函數(shù)內(nèi)部聲明到函數(shù)執(zhí)行完成;
2.全局變量:聲明到這個(gè)頁面關(guān)閉;
2.2算數(shù)運(yùn)算符
+(加) -(減) (乘) %(取余數(shù)或取模) /(除) ++(自加) --(自減)
注意:i++和++i的區(qū)別
2.3賦值運(yùn)算符
= += -=
= /= %=
2.4比較運(yùn)算符
== === != !== > < >= <=
當(dāng)不同數(shù)據(jù)類型的變量進(jìn)行比較時(shí),先將其轉(zhuǎn)換成對(duì)應(yīng)的number類型,再進(jìn)行比較。例如:
var a='2';
var b=2;
console.log(a==b);
console.log(a===b);
==:只比較數(shù)據(jù)大??;
===:既比較數(shù)據(jù)大小有比較數(shù)據(jù)類型;
比較運(yùn)算符返回的是一個(gè)布爾類型
2.5邏輯運(yùn)算符
&&(and) ||(or) !(not)
三.JavaScript基本語句--與Java完全相同
1.If

var a=2;
if (a>3){
    alert('a>0');
}
else if (a>1){
    alert('a>1');
}
else {
    alert('a<0');
}

2.Switch

switch (a){
    case 1:{
        alert('周一');
        break;
    }
    case 5:{
        alert('周二');
        break;
    }
    default:{
        alert('周五')
    }
}

3.For循環(huán)

//對(duì)數(shù)組操作,取出數(shù)組中的每個(gè)元素
var list = [1,56,'you','what','want',90]
//方法1:推薦使用
for(var i=0;i<list.length;i++){
    document.write('list['+i+']='+list[i]+'<br>')
}
//方法2
for (i in list){
    alert(list)
    document.write('list['+i+']='+list[i]+'<br>')
}

4.While

var a =1;
while (a<3){
    console.log('a='+a);
    a++;
}

5.Do...while

var b =1;
do{
    console.log('b='+b);
    b++;
}while (b<3)

while是先判斷條件再執(zhí)行,do...while...是先執(zhí)行再判斷條件
6.Continue
JavaScript基礎(chǔ)知識(shí)
JavaScript基礎(chǔ)知識(shí)
Continue繼續(xù)本次循環(huán)的下一次循環(huán)
7.Break
JavaScript基礎(chǔ)知識(shí)
JavaScript基礎(chǔ)知識(shí)
Break跳出本次循環(huán)
6.7代碼塊如下:

<script>
for(var a =0;a<3;a++){
    for(var b=0;b<5;b+=1){
        if(a<b){
            document.write('breack-=-=-='+'a='+a+',b='+b+';<br>');
            break;
//            continue;
        }
    document.write('a='+a+';b='+b+'<br>');
    }
}
</script>

四.函數(shù)
1.函數(shù)相關(guān)

1.定義函數(shù)
1.1常用格式
function functionname() {function body}

function test1(name) {
    alert('the name is :'+name);
    return name+'\'s'
}

1.2不常用格式
function functionname(){'參數(shù)','參數(shù)2',...,'function body'}

var test2 = new Function("name","alert(\'the name is :\'+name);return name+'\\'s'");
var res=  test1('張三');
var res2=  test2('張三');
console.log(test1.length)   //test1.length函數(shù)參數(shù)的個(gè)數(shù)
console.log(res);
console.log(res2);

function add(x,y,z) {
    return x+y+z;

}
JS函數(shù)在調(diào)用時(shí),函數(shù)的實(shí)參個(gè)數(shù)和形參個(gè)數(shù)不同時(shí),JS不會(huì)報(bào)錯(cuò)。實(shí)參和形參個(gè)數(shù)不等時(shí),按實(shí)參的先后順序取值,多時(shí)后面多余的不取,少時(shí)只取前面的部分;
var  res1 = add(2,7,1,9)
console.log(res1)   //結(jié)果為10
 var  res2 = add(2,7)
console.log(res2)   //結(jié)果為NAN
var  res3 = add(12,'YOU')   //有字符串結(jié)果即為String,少的參數(shù)則為undefined
console.log(res3)   //結(jié)果為NAN

function f(x,y) {
    return x+y;
}
var f =1;
var a= 2;
res = f(f,a);   //報(bào)錯(cuò),因?yàn)楹瘮?shù)調(diào)用為f(),只有f則是表示函數(shù)的地址,var f =1賦值操作將會(huì)把函數(shù)的內(nèi)存地址覆蓋掉,此時(shí)f將不再是一個(gè)函數(shù)了。所以再進(jìn)行調(diào)用時(shí),將會(huì)報(bào)錯(cuò)(f is a int ,not a function)
console.log(res)

1/函數(shù)的arguments屬性,表示傳給函數(shù)的實(shí)參數(shù)組
function add(x,y) {
    console.log(arguments);
    return x+y;

}
add(1,4,2)
2.需求:求任意數(shù)量實(shí)參的和的函數(shù)
function Add() {
    var sum = 0;
    for(var i=0;i<arguments.length;i++){
        sum+=arguments[i];
    }
    return sum;
}
res = Add(1,8,23,'122');
console.log(res);

2.函數(shù)的作用域
1.局部作用域:函數(shù)內(nèi)部的使用var聲明的變量;
2.全局作用域:函數(shù)內(nèi)部沒有使用var聲明的變量和函數(shù)外面使用var聲明的變量;
例如:
var bb=123; #全局變量
function foo() {
cc='you'; #全局變量
var dd='what'; #局部變量
return bb;
}
3.函數(shù)的作用域遵守python的LEGB原則,即:變量名引進(jìn)分為三個(gè)作用域進(jìn)行查找,首先是本地,再是函數(shù)內(nèi)(如果存在),之后才是全局變量,最后是內(nèi)置作用域(內(nèi)置作用域:內(nèi)置函數(shù)所在模塊的范圍);
例如:

<script>
    function fun() {
        var city = 'hubei'
        res = ad()
         function ad() {
            document.write("city="+city);
        }
    }
    fun()
    var name='zhouzhou'
    function fun1() {
        var city = 'hubei'
        ad1()
    }
    function ad1() {
        document.write("name="+name);
    }
    fun1()
</script>
3.函數(shù)生命周期
    1.局部變量:從函數(shù)內(nèi)部聲明到函數(shù)執(zhí)行完成;
    2.全局變量:聲明到這個(gè)頁面關(guān)閉;
4.匿名函數(shù)
        匿名函數(shù)也叫自執(zhí)行函數(shù),它是將函數(shù)體作為一個(gè)整體放在括號(hào)中,后面直接傳參進(jìn)行調(diào)用的一種方式。
例如:

//正常函數(shù)
function fun(arg) {
document.write("this is a function"+"<br>");
document.write("arg="+arg);

}
fun("zhouzhou")
//匿名函數(shù)
(function fun(arg) {
document.write("this is a function"+"<br>");
document.write("arg="+arg);

})("zhozuhou")


其實(shí)上面例子中,
(function fun(arg) {
    document.write("this is a function"+"<br>");
    document.write("arg="+arg);

})=fun
均為函數(shù)的內(nèi)存地址值,后面直接帶括號(hào)加參數(shù)進(jìn)行調(diào)用。

網(wǎng)站名稱:JavaScript基礎(chǔ)知識(shí)
網(wǎng)址分享:http://bm7419.com/article18/gejedp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁設(shè)計(jì)公司、網(wǎng)站排名手機(jī)網(wǎng)站建設(shè)、品牌網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站建設(shè)、服務(wù)器托管

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管