中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

前端三(san)劍客——javascript變(bian)量與數據類型

javascript:  編程語言(解釋型)

 

大綱:

??1.注釋方法

??2.js中斷(duan)句(ju)形式(, 和 ;)

??3.js存在形式與引入

??4.變(bian)量與常(chang)量的聲明(ming)和定(ding)義

??5.基本數據類型及方法

??6.數據類型的轉(zhuan)換??

??7.隱式轉換

??8.三元表達式

 

 

注釋方法

image

 

 

js中斷句形式

“  ,  ”:   對象(xiang)的屬性和方(fang)法用(yong) , 分割

“  ;  ”:  語句的(de)借(jie)宿用 ; 分(fen)割 

 

 

js存在形式與引入

??1.外部(bu)js(一般(ban)位于(yu)static目錄(lu)的js文(wen)件夾下(xia)面)

????引入:<script src="./static/my.js">      </script&gt;

??2.內部jjs(一(yi)般位(wei)于head標簽的css樣式下面(mian) 或 body標簽結束(shu)位(wei)置)

????head標簽里

<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script>
        alert(1);        //alert彈窗
    </script>
</head>

image

????body標簽結(jie)束(shu)位置(zhi)

<body>
<h1 id="h1"><span>你好</span></h1>

<script>
    alert(h1.innerHTML);
    alert(h1.innerText);
</script>
</body>

1->image  2->image  3->image

原因:單線程

 

????3.行間js:一般寫在元素(su)的指定屬性值中

image

image

 

變量與常量定義和聲明

????1,變量??var  let

聲明:變量首次出現用var或者(zhe)let關鍵字進行(xing)聲明,后(hou)續使用改變量無須(xu)加關鍵字????var全局變量??let局部變量

定義(yi):var 變量名 = 值 ??let 變量名 = 值

????2.常量   ??const

聲(sheng)(sheng)明(ming):用const聲(sheng)(sheng)明(ming)

定義:const 變(bian)量名 = 值(zhi)

????3.超全(quan)局對象(xiang)進行屬性(xing)賦值  不用var let const聲明??name = "guoahn"??即name是全(quan)局對象(xiang)Window的屬性(xing)而不是一個變(bian)量

<body>
<script>
    name = 200;     //本質寫法:this.name = 200  不是進行聲明變量 而是對Windou對象進行屬性賦值   
    console.log(this);      //Window
</script>
</body>

 

 

基本數據類型及方法

通過typeof進行查看類型??console.log(typeof num);

??image   ??

??

??與python區別:1.python3中(zhong)bool類(lei)(lei)(lei)型(xing)是int類(lei)(lei)(lei)型(xing)的子類(lei)(lei)(lei)  ??而js中(zhong)2者是完全不相干(gan)的數據類(lei)(lei)(lei)型(xing)

?????????  2.js中Array表象相當于(yu)python中的list

 ????????    3.js中(zhong)Object表象相當于(yu)python中(zhong)的(de)字典

????????? 4.js中Array類型屬(shu)于Object類型

 

????1.String類型

聲明(ming): var name = "guohan";??var name = String(“guohan”);

常見方法:??1.length??var v = name.length;

???????2.索引???var v = name[0];

???????3.切(qie)片(pian)???var v = name.substring(0,2);

???????4.去除空白   var v = name.trim();

???????5.字(zi)符(fu)串重復 repeat(次數);??

var content;
for (let i = 1; i <= 4; i++) {
    content = "";
    content = "*".repeat(i);
    console.log(content);
}

 

????2.Array類型(屬于Object類型)

聲明: var v =["guohan","gh"];??var v = Array["guohan","gh"];

常見方法: 1.length  ??2.索引(改/查)

????? 3.增(zeng):?????? 3.1   尾(wei)部增(zeng)加:v.push("你好");

?????????????? 3.2   ;頭部(bu)增加:v.unshift("你好(hao)");

?????????????? 3.3   索(suo)引增(zeng)加:v.splice(索(suo)引位置,0,元素(su));????v.splice(1,0,"你好");

????? 4.刪(shan):??????4.1   尾部刪(shan)除:v.pop();

?????????????&nbsp;   4.2   頭(tou)部刪除:v.shift();

?????????????? 4.3   索引(yin)進行刪除(chu): v.splice(索引(yin)位置,1);

?????5.判斷(duan)是否是數組:Array.isArray(變(bian)量(liang))  返回boolean類型??console.log(   v ,   Array.isArray(v));

image

 

 補充:forEach(數組的內置方法):  遍歷數組的每個元素并對每個元素進行一次指定的函數(回調函數)

//數組.forEach((當前元素,當前下標,原數組)=>{函數代碼語句;});
var obj = ["guohan","gh","gg","hh"];
obj.forEach((item,key)=>{console.log(item)})        //數組.forEach((當前元素,當前下標,原數組)=>{函數代碼語句;});//里面是匿名函數新寫法
//obj.forEach(item=>{console.log(item)});

 

????3.Object類型????例:const obj = { name: "張三", age: 18 };            ??對(dui)象的(de)屬性(xing)可以是任意(yi)數據(ju)類型的(de)數據(ju)  如 1(屬性(xing)):2(值(zhi))

聲明:

方式一(直接創建有屬性有方法的對象)    屬性名與屬性值之間必須用 : 連接

<body>
<script>
    var Person = {
        name : "guohan",            //屬性和方法用,隔開   屬性和屬性值用:
        age : 22,
        say(){
            return "你好"
        }
    };
    console.log(Person,Person.say());
    
</script>
</body>

image

 

方式二(用函數創建對象)

<body>
<script>
    function Info(name,age){
        this.name = name;
        this.age = age;
        this.say = function(){
            return "你好"
        }
    };
    var obj = new Info("guohan",22)
    console.log(obj,obj.say());
</script>
</body>

image

 

方式(shi)三(san)(用(yong)類創建對象)

<body>
<script>
    class Person{
    constructor(name,age){              //初始化   constructor相當于python中__init__方法
        this.name = name;
        this.age = age;
    }
    say(){
        return "你好"
    }
    };
    var info = new Person("guohan",22);
    console.log(info,info.say());
</script>
</body>

image

方式四(si)(創建空對象,添加屬性和方法)不常(chang)用

//創建對象(Object)方式二(創建空對象再去添加屬性和方法)
var Info = new Object();
Info.name = "guohan";
Info.age = 18;
Info.say = function(){
return "你好";
};
console.log(Info);

 

常見方法:??1.length??

?????? 2.增/改/查類似python

??????3.刪??delete  info["屬性(xing)"]

 

 

 

????4.undefined類型

觸發undefined條件  1.變量未進行賦值??2.變量賦值為undefined

????

????5.null類型(本身也是對象(xiang))

相當于(yu)python中的None??只(zhi)有給變量賦值(zhi)為null時才有null的存在(zai)??用于(yu)進(jin)行變量的初始(shi)化

 

數據類型的轉換

String

String轉(zhuan)Boolen

除(chu)了空字(zi)符(fu)串(chuan)轉(zhuan)(zhuan)為false   其(qi)他有類容的(de)字(zi)符(fu)串(chuan)(如“  ”(空格(ge))“0”)均轉(zhuan)(zhuan)換為true????python中純(chun)空格(ge)的(de)str轉(zhuan)(zhuan)bool是False

//String轉Boolean
var name = "guohan";
var name1 = Boolean(name);
console.log(name1,typeof name1);    //true 'boolean'

var age = "";
var age1 = Boolean(age);
console.log(age1,typeof age1);      //false 'boolean'

 

String轉Number

除了純數(shu)字形式的字符串能(neng)通過Number進行轉換(huan)其他符合一(yi)定條件的得通過parseInt和parseFloat方法進行轉換(huan)轉換(huan)????“-.5”表示-0.5可轉

//String轉Number
    var age = "10";
    var new_age = Number(age);
    console.log(new_age,typeof new_age);

    var num = "12歲";
    var new_num = Number(num);      //10 'number'
    console.log(new_num,typeof new_num);       //NaN 'number'  NaN是特殊的數值類型  當轉換對象不符合條件時才轉換成NaN
    console.log(typeof NaN);        //number

 

String和Array

//String轉Array
    var age = "18";
    console.log(Array(age),typeof Array(age));      //['18'] 'object'

 

Number(較常見)

 

Number轉(zhuan)Number和Number轉(zhuan)String和String轉(zhuan)Number

1.數值(zhi)之間可以進(jin)行轉換:parseInt和(he)parseFloat(Int->Float   ,   Float->Int)??但是Int轉Float時不展示小(xiao)數位

//數值之間的轉換   parseInt和parseFloat
var num1 = 10;
var num2 = 3.14;
console.log(parseFloat(num1),parseInt(num2));       //整數轉浮點數不加小數位 10 3

2.所有數值類型(xing)均可以轉成字符串類型(xing)

3.字(zi)符串(chuan)類型轉數值類型:

????只要(yao)是數值(zhi)開(kai)頭的字符(fu)串(chuan)均可以通過(guo)parseInt和parseFloat進行轉換??注意:千分(fen)位表示的數值(zhi)字符(fu)串(chuan)通過(guo)這方法只能識別(bie)開(kai)頭

//字符串轉數值

//純數值形式的字符串     Number
var num3 = "12.3";
console.log(Number(num3));      //12.3
console.log(parseInt(num3));    //12

//以數字開頭的字符串轉數值     parseInt和parseFloat
var num4 = "3.3公斤"
console.log(parseInt(num4));  //3
console.log(parseFloat(num4));    //3.3

//數值開頭的千分位表示法的字符串       parseInt只能識別開頭的數值并轉換
var num6 = "100_200_300"
console.log(parseInt(num6));  //100

????非數(shu)值開(kai)頭(tou)的字符串通過parseInt和parseFloat進(jin)行(xing)轉(zhuan)換??得(de)到NaN(特殊的數(shu)值類(lei)型)

//非數值開頭的字符串轉數字
var num5 = "共3元";
console.log(parseInt(num5));        //NaN

 

Boolean轉(zhuan)Number和Number轉(zhuan)Boolean

數值類型轉布爾類型

只有(you)0和NaN轉成Boolean為false

//數值類型轉布爾類型
console.log(Boolean(99));      //true
console.log(Boolean(0));     //false

布爾類型轉數值類型

//布爾類型轉數值類型
console.log(Number(true));      //1
console.log(Number(false));     //0

 

隱式轉換

/*
隱式轉換:    存在于弱類型語言如js php要求不像py那樣苛刻
         +規則:倆個數值相加或者兩個字符串拼接  
         -規則:兩個數值相減
         與python不同:python中隱式轉換主要集中于數值運算和布爾判斷print(1-True)>>>0  print(1 + 1.1)>>>2.1  if 1:
                       不能print("2"-"1")    即python隱式轉換要求苛刻
*/

    //數值類型和布爾類型
    console.log(1+true);    //2
    console.log(1-true);    //0

    //字符串類型和布爾類型
    console.log("guohan"+true);     //guohantrue
    console.log("1"-false);     //1
    console.log("2"-"1");           //1

 

 

三元表達式

//三元表達式
/*
    js:條件?真時返回的結果:假時返回的結果
    py:真時的返回結果 if 條件 else 假時返回的結果
*/

//js
age = 18;
var ret = age>=20?"成年人":"未成年人";
console.log(ret);

//py
age = 18
ret = "成年人" if age>=18 else "未成年人"
print(ret)

 

posted @ 2025-10-29 10:06  guohan  閱讀(10)  評論(0)    收藏  舉報