重拾Java EE——JavaScript

JS知識網絡圖

一、js的簡介

1、js是什么

js是可以嵌入到html中,是 基于對象 和 事件驅動 的 腳本語言

    特點:
        (1)交互性
        (2)安全性:js不能訪問本地磁盤
        (3)跨平臺:瀏覽器中都具備js解析器

2、js能做什么

(1)js能動態的修改(增刪)html和css的代碼
(2)能動態的校驗數據

3、js歷史及組成

ECMAScript BOM(瀏覽器對象模型) DOM(文檔對象模型)

4、js被引入的方式

(1)內嵌腳本

<input type="button" value="button" onclick="alert('xxx')" />   

(2)內部腳本

<script type="text/javascript">
    alert("xxx");
</script>

(3)外部腳本

首先先創建一個js文件
其次在html中引入

<script type="text/javascript" src="demo1.js"></script>

js代碼放在哪?
放在哪都行,在不影響html功能的前提下 越加載越好


二、js基本語法

1、變量

(1)

        var x = 5;
        x = 'javascript';
        var y = "hello";
        var b = true;

(2)

        x = 5;

2、原始數據類型

介紹

(1)number:數字類型
(2)string:字符串類型
(3)boolean:布爾類型
(4)null:空類型
(5)underfind:未定義

注意:number、boolean、string是偽對象

類型轉換:

1)number\boolean轉成string

            toString();

2)string\boolean轉成number

            parseInt()
            parseFloat()
            boolean不能轉
            string可以將數字字符串轉換成number 如果“123a3sd5” 轉成123

3)強制轉換

            Boolean()   強轉成布爾
                數字強轉成布爾  非零就是true   零就是false
                字符串強轉成布爾  非“”(空字符串)就是true   空字符串“”就是false
            Number()    強轉成數字
                布爾轉數字 true轉成1  false轉成0
                字符串轉數字 不能強轉

3、引用數據類型

    java:   Object obj = new Object();
    js:     var obj = new Object();
            var num = new Number(); 

4、運算符

(1)賦值運算符

        var x = 5;

(2)算數運算符

            + - * / %
            +: 遇到字符串變成連接
            -:先把字符串轉成數字然后進行運算
            *: 先把字符串轉成數字然后進行運算
            /: 先把字符串轉成數字然后進行運算

(3)邏輯運算符

        &&  ||

(4)比較運算符

        <   >   >=  <=  !=  ==
        ===:全等:類型與值都要相等

(5)三元運算符

        3<2?"大于":"小于"

(6)void運算符

        <a href="javascript:void(0);">xxxxxx</a>

(7)類型運算符

            typeof:判斷數據類型 返回我的數據類型
            instanceof:判斷數據類型 是否是某種類型
            var obj = new Object();
            alert(typeof obj);//object
            alert(obj instanceof Object);//true

5、邏輯語句

(1)if-else

            //條件:
            //數字非0 字符串非空====true
                if(9){
                    alert("true--");
                }else{
                    alert("false--");
                }

(2)switch

            var x = "java";
            switch(x){
                case "css":
                    alert("css");
                    break;
                case "js":
                    alert("js");
                    break;
                case "java":
                    alert("java");
                    break;
                default:
                    alert("def");
            }

(3)for

             for(var i = 0;i<5;i++){
                alert(i);
             }

(4)for in

            var arr = [1,3,5,7,"js"];
             for(index in arr){//index代表角標
                //alert(index);
                alert(arr[index]);
             }

三、js內建對象

1、Number

創建方式:

            var myNum=new Number(value);
            var myNum=Number(value);

屬性和方法:

        toString():轉成字符串
        valueOf():返回一個 Number 對象的基本數字值

2、Boolean

創建方式:

            var bool = new Boolean(value);  
            var bool = Boolean(value);

屬性和方法:

        toString():轉成字符串
        valueOf():返回一個 Boolean 對象的基本值(boolean)          

3、String

創建方式:

            var str = new String(s);
            var str = String(s);

屬性和方法:

            length:字符串的長度
            charAt():返回索引字符
            charCodeAt:返回索引字符unicode
            indexOf():返回字符的索引
            lastIndexOf();逆向返回字符的索引
            split();將字符串按照特殊字符切割成數組
            substr():從起始索引號提取字符串中指定數目的字符
            substring():提取字符串中兩個指定的索引號之間的字符
            toUpperCase();轉大寫

4、Array

創建方式:

            var arr = new Array();//空數組
            var arr = new Array(size);//創建一個指定長度的數據
            var arr = new Array(element0, element1, ..., elementn);//創建數組直接實例化元素
            var arr = [];//空數組
            var arr = [1,2,5,"java"];//創建數組直接實例化元素

屬性和方法:

        length:數組長度
        join():把數組的所有元素放入一個字符串。元素通過指定的分隔符進行分隔一個
        pop():刪除并返回最后元素
        push():向數組的末尾添加一個或更多元素,并返回新的長度
        reverse();反轉數組
        sort();排序

5、Date

創建方式:

            var myDate = new Date();
            var myDate = new Date(毫秒值);//代表從1970-1-1到現在的一個毫秒值

屬性和方法:

        getFullYear():年
        getMonth():月 0-11
        getDate():日 1-31
        getDay():星期 0-6
        getTime():返回1970年1月1日午夜到指定日期(字符串)的毫秒數
        toLocalString();獲得本地時間格式的字符串

6、Math

創建方式:

Math 對象并不像 Date 和 String 那樣是對象的類,因此沒有構造函數 Math(),
像 Math.sin() 這樣的函數只是函數,不是某個對象的方法。無需創建它,通過把 Math 作為對象使用就可以調用其所有屬性和方法。

屬性和方法

        PI:圓周率
        abs():絕對值
        ceil():對數進行上舍入
        floor():對數進行下舍入
        pow(x,y):返回 x 的 y 次冪
        random():0-1之間的隨機數
        round():四舍五入

7、RegExp

創建方式:

            var reg = new RegExp(pattern);
            var reg = /^正則規則$/;

規則的寫法:

        [0-9] 
        [A-Z]
        [a-z]
        [A-z]
        \d 代表數據
        \D  非數字
        \w  查找單詞字符
        \W  查找非單詞字符
        \s  查找空白字符
        \S  查找非空白字符
        n+  出現至少一次
        n*  出現0次或多次
        n?  出現0次或1次
        {5} 出現5
        {2,8} 2到8次

方法:

        test(str):檢索字符串中指定的值。返回 true 或 false

需求:校驗郵箱

        var email = haohao_827@163.com
        var reg = /^[A-z]+[A-z0-9_-]*\@[A-z0-9]+\.[A-z]+$/;
        reg.test(email);

四、js的函數

1、js函數定義的方式

(1)普通方式

語法:function 函數名(參數列表){函數體}

示例:

                function method(){
                    alert("xxx");
                }
                method();

(2)匿名函數

語法:function(參數列表){函數體}

示例:

                var method = function(){
                    alert("yyy");
                };
                method();

(3)對象函數

語法:new Function(參數1,參數2,...,函數體);
注意:參數名稱必須使用字符串形式、最后一個默認是函數體且函數體需要字符串形式
示例:

                var fn = new Function("a","b","alert(a+b)");
                fn(2,5);

2、函數的參數

(1)形參沒有var去修飾
(2)形參和實參個數不一定相等
(3)arguments對象 是個數組 會將傳遞的實參進行封裝

    function fn(a,b,c){
            //var sum = a+b+c;
            //alert(sum);
            //arguments是個數組 會將傳遞的實參進行封裝
            for(var i=0;i<arguments.length;i++){
                alert(arguments[i]);
            }
        }
        fn(1,2,4,8);

3、返回值

(1)在定義函數的時候不必表明是否具有返回值
(2)返回值僅僅通過return關鍵字就可以了 return后的代碼不執行

        function fn(a,b){
            return a+b;
            //alert("xxxx");
        }
        alert(fn(2,3));

4、js的全局函數

(1)編碼和解碼

        encodeURI()   decodeURI()
        encodeURIComponet()   decodeURIComponent()
        escape()    unescape()
        三者區別:
            進行編碼的符號范圍不同吧,實際開發中常使用第一種

(2)強制轉換

        Number()
        String()
        Boolean()

(3)轉成數字

        parseInt()
        parseFloat()

(4)eval()方法

將字符串當作腳本進行解析運行, 代碼嵌入的一種

            var str = "var a=2;var b=3;alert(a+b)";
            eval(str);
            function print(str){
                eval(str);
            }
            print("自定義邏輯");

五、js的事件

事件
事件源
響應行為

1、js的常用事件

onclick:點擊事件

onchange:域內容被改變的事件

需求:實現二級聯動

            <select id="city">
                <option value="bj">北京</option>
                <option value="tj">天津</option>
                <option value="sh">上海</option>
            </select>
            <select id="area">
                <option>海淀</option>
                <option>朝陽</option>
                <option>東城</option>
            </select>
            <script type="text/javascript">
                var select = document.getElementById("city");
                select.onchange = function(){
                    var optionVal = select.value;
                    switch(optionVal){
                        case 'bj':
                            var area = document.getElementById("area");
                            area.innerHTML = "<option>海淀</option><option>朝陽</option><option>東城</option>";
                            break;
                        case 'tj':
                            var area = document.getElementById("area");
                            area.innerHTML = "<option>南開</option><option>西青</option><option>河西</option>";
                            break;
                        case 'sh':
                            var area = document.getElementById("area");
                            area.innerHTML = "<option>浦東</option><option>楊浦</option>";
                            break;
                        default:
                            alert("error");
                    }
                };              
            </script>

onfoucus:獲得焦點的事件onblur:失去焦點的事件

需求: 當輸入框獲得焦點的時候,提示輸入的內容格式
當輸入框失去焦點的時候,提示輸入有誤

            <label for="txt">name</label>
            <input id="txt" type="text" /><span id="action"></span>
            <script type="text/javascript">
                var txt = document.getElementById("txt");
                txt.onfocus = function(){
                    //友好提示
                    var span = document.getElementById("action");
                    span.innerHTML = "用戶名格式最小8位";
                    span.style.color = "green";
                };
                txt.onblur = function(){
                    //錯誤提示
                    var span = document.getElementById("action");
                    span.innerHTML = "對不起 格式不正確";
                    span.style.color = "red";
                };
            </script>

onmouseover:鼠標懸浮的事件 onmouseout:鼠標離開的事件

需求:div元素 鼠標移入變為綠色 移出恢復原色

 #d1{background-color: red;width:200px;height: 200px;}
            <div id="d1"></div>
            <script type="text/javascript">
                var div = document.getElementById("d1");
                div.onmouseover = function(){
                    this.style.backgroundColor = "green";
                };
                div.onmouseout = function(){
                    this.style.backgroundColor = "red";
                };
            </script>

onload:加載完畢的事件

等到頁面加載完畢在執行onload事件所指向的函數

            <span id="span"></span>
            <script type="text/javascript">
                window.onload = function(){
                    var span = document.getElementById("span");
                    alert(span);
                    span.innerHTML = "hello js";
                };
            </script>
            

2、事件的綁定方式

(1)將事件和響應行為都內嵌到html標簽中

        <input type="button" value="button"  onclick="alert('xxx')"/>

(2)將事件內嵌到html中而響應行為用函數進行封裝

            <input type="button" value="button" onclick="fn()" />
            <script type="text/javascript">
                function fn(){
                    alert("yyy");
                }
            </script>

(3)將事件和響應行為 與html標簽完全分離

            <input id="btn" type="button" value="button"/>
            <script type="text/javascript">
                var btn = document.getElementById("btn");
                btn.onclick = function(){
                    alert("zzz");
                };
            </script>

this關鍵字
this經過事件的函數進行傳遞的是html標簽對象

            <input id="btn" name="mybtn" type="button" value="button123" onclick="fn(this)"/>
            <script type="text/javascript">
                function fn(obj){
                    alert(obj.name);
                }
            </script>

3、阻止事件的默認行為

IE:

window.event.returnValue = false;

W3c:

傳遞過來的事件對象.preventDefault();

例子

        //ie:window.event.returnValue = false;
        //W3c:傳遞過來的事件對象.preventDefault();
        //W3c標準
        if(e&&e.preventDefault){
            alert("w3c");
            e.preventDefault();
        //IE標簽
        }else{
            alert("ie");
            window.event.returnValue = false;
        }

//通過事件返回false也可以阻止事件的默認行為

        <a href="demo11.html" onclick="return false">點擊我吧</a>

4、阻止事件的傳播

IE:

window.event.cancelBubble = true;

W3c:

 傳遞過來的事件對象.stopPropagation();

例子

     if(e&&e.stopPropagation){
            alert("w3c");
            e.stopPropagation();
        //IE標簽
        }else{
            alert("ie");
            window.event.cancelBubble = true;
        }   

六、js的bom

1、window對象

彈框的方法:

            提示框:alert("提示信息");
            確認框:confirm("確認信息");
                有返回值:如果點擊確認返回true  如果點擊取消 返回false
                var res = confirm("您確認要刪除嗎?");
                alert(res);
            輸入框:prompt("提示信息");
                有返回值:如果點擊確認返回輸入框的文本 點擊取消返回null
                var res =  prompt("請輸入密碼?");
                alert(res);

open方法:

            window.open("url地址");           
            open("../jsCore/demo10.html");

定時器:

1)setTimeout

setTimeout(函數,毫秒值);
clearTimeout(定時器的名稱);

                setTimeout(
                    function(){
                        alert("xx");
                    },
                    3000
                );

例子:

                var timer;
                var fn = function(){
                    alert("x");
                    timer = setTimeout(fn,2000);
                };
                var closer = function(){
                    clearTimeout(timer);
                };
                fn();

2)setInterval

setInterval(函數,毫秒值);
clearInterval(定時器的名稱)

            var timer = setInterval(
                function(){
                    alert("nihao");
                },
                2000
            );
            var closer = function(){
                clearInterval(timer);
            };

需求:注冊后5秒鐘跳轉首頁

        <script type="text/javascript">
            var time = 5;
            var timer;
            timer = setInterval(
                function(){
                    var second = document.getElementById("second");
                    if(time>=1){
                        second.innerHTML = time;
                        time--;
                    }else{
                        clearInterval(timer);
                        location.href="../jsCore/demo10.html";
                    }
                },
                1000
            );
        </script>
恭喜您注冊成功,<span id="second" style="color: red;">5</span>秒后跳轉到首頁
如果不跳轉請<a href="../jsCore/demo10.html">點擊這里</a>

2、location

    location.href="url地址";

3、history

back();
forward();
go();

        <a href="demo7.html">后一頁</a>
        <input type="button" value="上一頁" onclick="history.back()">
        <input type="button" value="下一頁" onclick="history.forward()">
        
        <input type="button" value="上一頁" onclick="history.go(-1)">
        <input type="button" value="下一頁" onclick="history.go(1)">

七、js的dom

1、文檔對象模型

html文件加載到內存之后會形成一顆dom樹,根據這些節點對象可以進行腳本代碼的動態修改
在dom樹當中 一切皆為節點對象

節點的類型:

  • 元素節點
  • 屬性節點
  • 文本節點

2、dom方法和屬性

屬性

(1)nodeName

String 節點的名字;根據節點的類型而定義

NodeName

如果是元素節點,nodeName返回這個元素的名稱(標簽名)。
如果是屬性節點,nodeName返回這個屬性的名稱(屬性名)。
如果是文本節點,nodeName返回一個內容為#text 的字符串。

(2)nodeType

Number 節點的類型,常量值之一

nodeType

Node.ELEMENT_NODE ---1 -- 元素節點
Node.ATTRIBUTE_NODE ---2 -- 屬性節點
Node.TEXT_NODE ---3 -- 文本節點

(3)nodeValue

String 節點的值;根據節點的類型而定義

nodeValue

如果給定節點是一個屬性節點,返回值是這個屬性的值
如果給定節點是一個文本節點,返回值是這個文本節點內容
如果給定節點是一個元素節點,返回值是 null

(4)父節點: parentNode

parentNode 屬性返回的節點永遠是一個元素節點,因為只有元素節點才有可能包含子節點。
document 節點的沒有父節點。

(5)子節點

childNodes:獲取指定節點的所有子節點集合。
firstChild:獲取指定節點的第一個子節點。
lastChild:獲取指定節點的最后一個子節點。

(6)同輩節點

nextSibling: 返回一個給定節點的下一個兄弟節點。
previousSibling:返回一個給定節點的上一個兄弟節點。

1.創建

(1)createElement()

按照給定的標簽名創建一個新的元素節點。方法只有一個參數:將被創建的元素的名字,是一個字符串.

var reference = document.createElement(element);

方法的返回值:是一個指向新建節點的引用指針。返回值是一個元素節點,所以它的 nodeType 屬性值等于 1。
新元素節點不會自動添加到文檔里,新節點沒有 nodeParent 屬性,它只是一個存在于 JavaScript 上下文的對象.

(2)createTextNode()

創建一個包含著給定文本的新文本節點。這個方法的返回值是一個指向新建文本節點引用指針。

var textNode = document.createTextNode(text);

方法只有一個參數:新建文本節點所包含的文本字符串
方法的返回值:是一個指向新建節點的引用指針。它是一個文本節點,所以它的 nodeType 屬性等于 3.
新元素節點不會自動添加到文檔里,新節點沒有 nodeParent 屬性

2.移除

removeChild()

從一個給定元素里刪除一個子節點

var reference = element.removeChild(node);

返回值是一個指向已被刪除的子節點的引用指針。
某個節點被removeChild()方法刪除時,這個節點所包含的所有子節點將同時被刪除。
如果想刪除某個節點,但不知道它的父節點是哪一個,parentNode 屬性可以幫忙。

3.替換

replaceChild()

把一個給定父元素里的一個子節點替換為另外一個子節點

var reference = element.replaceChild(newChild,oldChild);

返回值是一個指向已被替換的那個子節點的引用指針。
如果被插入的子節點還有子節點,則那些子節點也被插入到目標節點中

4.查找

(1)getElementById()

尋找一個有著給定 id 屬性值的元素,返回值是一個有著給定 id 屬性值的元素節點。如果不存在這樣的元素,它返回 null.

var oElement = document.getElementById ( sID )

該方法只能用于 document 對象

(2)getElementsByName()

尋找有著給定name屬性的所有元素,這個方法將返回一個節點集合,這個集合可以當作一個數組來處理。這個集合的 length 屬性等于當前文檔里有著給定name屬性的所有元素的總個數。

(3)getElementsByTagName()

尋找有著給定標簽名的所有元素,這個方法將返回一個節點集合,這個集合可以當作一個數組來處理。這個集合的 length 屬性等于當前文檔里有著給定標簽名的所有元素的總個數。

(4)hasChildNodes()

該方法用來檢查一個元素是否有子節點,返回值是 true 或 false.

var booleanValue = element.hasChildNodes();

文本節點和屬性節點不可能再包含任何子節點,所以對這兩類節點使用 hasChildNodes 方法的返回值永遠是 false.
如果 hasChildNodes 方法的返回值是 false,則 childNodes,firstChild,lastChild 將是空數組和空字符串。

(5)getAttribute()

返回一個給定元素的一個給定屬性節點的值

var attributeValue = element.getAttribute(attributeName);

給定屬性的名字必須以字符串的形式傳遞給該方法。
給定屬性的值將以字符串的形式返回,如果給定屬性不存在,getAttribute() 將返回一個空字符串.
通過屬性獲取屬性節點
getAttributeNode(屬性的名稱)--Node

(6)setAttribute()

將給定元素節點添加一個新的屬性值或改變它的現有屬性的值。

element.setAttribute(attributeName,attributeValue);

屬性的名字和值必須以字符串的形式傳遞給此方法
如果這個屬性已經存在,它的值將被刷新;
如果不存在,setAttribute()方法將先創建它再為其賦值。

5.插入

(1)appendChild()

為給定元素增加一個子節點:

 var newreference = element.appendChild(newChild).              

給定子節點 newChild 將成為給定元素節點 element 的最后一個子節點。
方法的返回值是一個指向新增子節點的引用指針。

該方法通常與 createElement() createTextNode() 配合使用
新節點可以被追加給文檔中的任何一個元素

(2)insertBefore()

把一個給定節點插入到一個給定元素節點的給定子節點的前面

var reference =  element.insertBefore(newNode,targetNode);

節點 newNode 將被插入到元素節點 element 中并出現在節點 targetNode 的前面.
節點 targetNode 必須是 element 元素的一個子節點。
該方法通常與 createElement() 和 createTextNode() 配合使用

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

推薦閱讀更多精彩內容

  • 一、JS前言 (1)認識JS 也許你已經了解HTML標記(也稱為結構),知道了CSS樣式(也稱為表示),會使用HT...
    凜0_0閱讀 2,788評論 0 8
  • 前言 歸根結底,代碼都是思想和概念的體現。沒人能把一種程序設計語言的所有語法和關鍵字都記住,可以查閱參考書來解決。...
    朱細細閱讀 2,954評論 4 14
  • 跨境電商+直播 如荼如火的直播業務,正與不同行業結合起來,形成“直播+經濟”。隨著跨境電商購物需求不斷升溫,喜好為...
    Kakie閱讀 243評論 0 0
  • 001重視選擇,首先要以可靠為判斷先決條件; 什么是可靠?對人來說是靠譜,關鍵時刻不能掉鏈子,辦事要懂!對于我們的...
    止海閱讀 394評論 4 3
  • 今晚只有自己一個人吃飯。 本來想隨便吃個面什么的應付一下就算了。但忽然想起媽媽提醒過我,冰箱里還有一條勝瓜。一時嘴...
    車馬正簡閱讀 298評論 0 0