3、JavaScript

JavaScript

結合方式

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>js結合方式</title>
</head>
<body>
<!--引入方式1,使用script標簽,在標簽內容里寫代碼-->
    <script type="text/javascript">
        alert("hello world");
    </script>
    <!--引入方式2,導入js文件,注意,script標簽內容需要為空-->
    <script type="text/javascript" src="hello.js"></script>
</body>
</html>

hello.js

alert("哈哈");

打開瀏覽器,會依次彈出兩條警告。

數據類型

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>js數據類型</title>
</head>
<body>
    <script type="text/javascript">
        /* Java數據類型
            1、基本數據類型 (8種)
            2、引用數據類型 */

        /* js數據類型
            1、原始類型
                number 數字 不分整型和浮點型
                string 字符串 在java中是引用類型,js中是原始類型
                boolean 布爾
                null 一般是人為賦值,對象數據類型的占位符
                undefined null的衍生值,通常是系統自動賦值,當我們創建一個變量但是沒有初始化時,默認為undefined
            2、對象類型 */

            var a;
            var b = null;
            alert(a); // 彈出undefined
            alert(b); // 彈出null
    </script>
</body>
</html>

運算符

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>js運算符</title>
</head>
<body>
    <script type="text/javascript">
        var a = "123";
        alert(typeof a);
        a = +a; // 變成了數字類型,因為“+”是數字運算符,所以需要a是數字類型,于是自動轉換
        alert(typeof a);
        // 除了+0, -0和NaN之外,所有其他number轉為boolean時候都是true
        // NaN是錯誤的數據,比如 var c = +"abc";字母無法轉為數字

        // number -> bool 除了+0, -0和NaN之外都是true
        // string -> bool 只要不為空,就是true
        // null -> false
        // undefined -> false
        // Object -> true

        if (-1) {
            alert("true"); // 執行這條
        } else {
            alert("false");
        }

        // 使用“+”時,如果右字符串,則和java一樣,轉換為字符串
        var e = "33" + 1;
        alert(e); // 彈出331
        // 在其他運算符中,字符串會轉換成數字
        var f = "33" - 1; // 彈出32
        alert(f);
        /*
        alert("2" > 1); // 優先往數字轉,true
        alert("2" > "1") // 字符串的比較規則比較ASCII碼
        alert(1 == true); // true
        alert(2 == true); // false
        alert(0 == false); // true
        alert(null == undefined); // true
        alert(NaN == NaN); // false, 凡是NaN參與運算符,除了 ! 和 !=,其他都是false
        */
        
        /* === 在比較的時候回包含類型,類型不一樣直接false*/
    </script>
</body>
</html>

對象

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>對象</title>
</head>
<body>
    <script type="text/javascript">
        // Function是一個特殊的對象
        function fun() {
            alert("hello1");
        }

        alert(fun.toString());
        // 1、對象的創建

        var fun2 = function() {
            alert("hello2");
        };

        fun2();
        // 2、對象屬性
        alert(fun2.length) // length表示函數的參數個數
        // 3、對象的方法
        //toString()會打印函數定義

        function fun3(a, b) {
            alert("和為"+ (a + b));
            // arguments.length表示函數運行時實際傳入的參數個數
            alert("實際傳入參數個數"+arguments.length);
        }
        // 只要函數名對了就行,不管參數
        fun3(1, 2);
        fun3(1, 2, 3); // 只用前兩個
        fun3(); // 兩個undefined,返回NaN

    </script>
</body>
</html>

函數進階

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
 <script type="text/javascript">
     function fun(a, b) {
        alert(a + b);
        return a + b;
     }
 </script>
 <!--使用void將函數包起來,用于攔截方法的返回值,可以避免新加載頁面-->
<a href="javascript:void(fun(1, 2));">點我</a>
<a href="javascript:void(0)" onclick="alert('haha')">再點我</a>
</body>
</html>

三個包裝類

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>三個包裝對象</title>
</head>
<body>
    <script type="text/javascript">
        /*  Java的八大基本數據類型都有對應的包裝類,自動拆裝箱機制
            js中5個原始類型,有3個包裝類,Number、String、Boolean
            js中的偽對象概念,原始類型可以直接調用對應包裝類型的方法和屬性
         */
         // 創建,填寫任何類型的參數都可以,也即是說有強制類型轉換的功能
        var str = new String("Hello");
        alert(str.length);
        alert("hello".length);

        alert(str instance String); // true
        alert("hello" instance String); //false,"hello"不是對象而是基本數據類型
    </script>
</body>
</html>

Global對象

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script type="text/javascript">
// parseInt  轉換成整數  => 從左到右依次轉換.轉換到遇到不能轉換的字符為止
// parseFloat 轉換成浮點數

var str = "123";

var num1 = parseInt(str);
var num2 = +str;
var num3 = new Number(str);

alert(typeof num);
//------------------------------------------
var str2 = "123a";

alert(+str2); // NaN
alert(parseInt(str2));//123
//-------------------------------------------
var str3 = "a123";

alert(parseInt(str3));//NaN
//-------------------------------------------
var str4= "3.14";

alert(parseFloat(str4));//3.14
alert(parseInt(str4));//3
</script>

<script type="text/javascript">
//isNaN() 判斷一個值是否是NaN
var num = NaN;

/* if(isNaN(num)){
    alert("是NaN");
}else{
    alert("不是NaN");
} */
//-------------------------------------------------
//eval() 傳入字符串,當成表達式來使用并返回

alert(eval("1+1"));//2
alert(eval("new String('abc')"));// abc

</script>
</body>
</html>

數組對象

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Array對象</title>
</head>
<body>
<script type="text/javascript">
    //數組
    //對象的功能
        //表達數組,類似于java中的數組. 可以存取值
    //對象的創建
        var arr1 = [1,2,3,4];
        var arr2 = new Array(1,2,3,4);
        var arr3 = new Array(4);// 如果調用數組構造,只傳遞一個參數,并且參數的值是數字.那么該值將作為數組初始化長度
    //對象的屬性
        // length  長度
        //alert(arr1.length);//4
        //alert(arr2.length);//4
        //alert(arr3.length);//4
    //對象的方法
        //pop 彈棧  將0索引 的變量移除并返回
        //push 壓棧 將一個值放入數組的0索引位置
        //reverse 將數組反轉 => 會對數組本身順序進行調整
            //alert(arr1.reverse());
        //sort 排序 => 默認會按照字符串比較的方式排序.而不是數字.

        var arr5 = [100,1,5,9,2,3,8,7];

        //alert(arr5.sort(abc));

        // sort 可以傳入一個比較器 => 比較器決定排序規則

        function abc(a,b){
            return a-b;
        }
    //----------------------------------------------------------------------
    //進階  js中的array沒什么原則
        //1 數組中元素的類型可以任意
        //2 數組的長度是可以隨時變化的.
        var arr6 = ["haha",3.14,true,null,undefined,new Object()];

        alert(arr6.length);

        arr6[10] = "itcast";
        alert(arr6[10]);//itcast
        alert(arr6.length);// 11

        alert(arr6[9]);//undefined
</script>
</body>
</html>

2017.3.8

by @sunhaiyu

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,619評論 6 539
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,155評論 3 425
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,635評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,539評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,255評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,646評論 1 326
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,655評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,838評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,399評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,146評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,338評論 1 372
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,893評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,565評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,983評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,257評論 1 292
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,059評論 3 397
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,296評論 2 376

推薦閱讀更多精彩內容