JS新手必過之—基礎知識(1)

1.組成部分####

  • DOM(Document Object Model ):文檔對象模型;DOM樹,本身為我們操作頁面元素提供了一套方法(API)。
  • BOM(Browser Object Model):瀏覽器對象模型 核心對象(window loacation )。
  • ECMAScript:規(guī)定js的核心語法,js語句,關鍵字,保留字

2.兩種數(shù)據(jù)類型####

  • 基本數(shù)據(jù)類型(簡單數(shù)據(jù)類型):
    string 字符串類型
    number 數(shù)值
    boolean 布爾類型(true | false)
    undefined 未定義
    null 空(對象)
  • 復雜數(shù)據(jù)類型(復合數(shù)據(jù)類型):
    Object 對象類型
    Array 數(shù)組類型
    Funcation 函數(shù)類型
    Date 日期類型
    Math 對象
    String 對象
    Number 對象
    Boolean 對象...

3.賦值、等于和全等說明####

? ?賦值(=):把一個變量賦上具體的數(shù)據(jù);
? ?等于(==):比較的時候只判斷數(shù)值是否是相等的;
? ?全等(===):比較的時候不僅要比較數(shù)據(jù)還需要比較類型;
? ?不等于(!=)
? ?不全等于(!==)

 var str1 = "讓我掉下眼淚的,不止你的溫柔";  //string類型
 var str2 = "讓我掉下眼淚的,不止你的溫柔";  //string類型
 console.log(str1 == str2);  //true

 var test1 = 1;      //number類型
 var test2 = "1";    //string類型
 console.log(test1 == test2);    //true
 console.log(test1 === test2);  //false

4.關系運算符####

? ? 返回值:布爾類型,要么是true要么是false,一般用于判斷語句中.
? ? 大于 >
? ?小于 <
? ?大于等于 >=
? ?小于等于 <=

5.邏輯運算符####

  • 邏輯非(!) 取反
  • 邏輯或(||)
    語法:表達式1 || 表達式2
    結果: 判斷表達式1,如果表達式1為真,那么就返回表達式1,如果表達式1的值為假,那么就返回表達式2;
    var resultA = 3 || 2;   //3
    var resultB = 0 || 2;   //2
    var resultC = 5 || 0;   //5
    var resultD = 0 || 0;   //0
  • 邏輯與(&&)
    語法:表達式1 && 表達式2
    結果: 如果表達式1為真,返回表達式2,如果表達式1為假,返回表達式1
    var resultA = 3 && 2;   //2
    var resultB = 0 && 2;   //0
    var resultC = 5 && 0;   //0

6.值類型和引用類型####

  • 值類型:
    string、number、 boolean、undefined
  • 引用類型:
    object類型
    區(qū)別:值類型存儲的是具體的值,引用類型存儲的是指向具體的地址(引用);
//值類型的數(shù)據(jù)
    var str = "喜洋洋";  //string
    var num=23;         //number
//引用類型的數(shù)據(jù)
var person= {
        name:"老王",
        age:38,
        dog:dog
    };
var dog = {
        name:"阿黃",
        color:"黃色"
    };
var arr=[1,2,3,4,5];
  • 值類型和引用類型的賦值
    ①值類型賦值:
    把右邊變量存儲存儲的值(具體的數(shù)據(jù))復制一份給左邊的變量
    ②引用類型賦值:
    把右邊變量存儲存儲的值(指向具體數(shù)據(jù)的地址)復制一份給左邊的變量
    區(qū)別
    值類型的賦值是簡單數(shù)據(jù)的復制,他們保存在相對獨立的空間中,彼此不會影響,引用類型賦值修改了某個對象的屬性,對另外一個對象的屬性會有影響;
值類型賦值:
    var str1 = "我是MT";
    var str2 = str1;
    console.log(str1);   //'我是MT'
    console.log(str2);   //'我是MT'
    str1 = ''哈哈哈'';
    console.log(str1);   //'哈哈哈'
    console.log(str2);   //'我是MT'
引用類型賦值:
var person1 = {
        name:"余小花"
    }
var person2=person1;
console.log(person1.name);   //'余小花'
console.log(person2.name);   //'余小花'
person1.name=''張全蛋'';
console.log(person1.name);   //'張全蛋'
console.log(person2.name);   //'張全蛋'
  • 值類型和引用類型在函數(shù)中的使用
    函數(shù)里面的相關術語
    實參(實際參數(shù)):
    形參(形式參數(shù)):占位的變量,沒有調(diào)用函數(shù)的時候形參是沒有值
    函數(shù)的調(diào)用:默認會把實參的值賦值給形參
    區(qū)別:值類型作為函數(shù)的參數(shù),實參和形參他們的數(shù)據(jù)是相互獨立的。引用類型作為函數(shù)的參數(shù),形參和實參共享同一份數(shù)據(jù),修改其中的某個對象對另外一個對象也會有影響
 //01 值類型作為函數(shù)的參數(shù)傳遞
    var number = 22;
    function funcName(n) {
        //n = number; 內(nèi)部默認的實現(xiàn)
        n = 11;
        console.log(n);   
    }
    funcName(number);  //11
    console.log(number);  //22(未修改number的值)
    //02 引用類型作為函數(shù)的參數(shù)傳遞
     對象替換了形參,對實現(xiàn)沒有影響:
    var obj = {name:"小月"};
    function funcName(param) {
        param = {//此行參數(shù)重新賦值,并非修改
            name:"張明明"
        }; 
        console.log(param.name);
    }
    funcName(obj);  //張明明
    console.log(obj.name); //''小月''
 修改了形參,同時對實參也有影響:
var obj = {name:"小月"};
function funcName(param) {
    param .name=''哈哈哈''//此行修改了參數(shù)
    console.log(param.name);
}
funcName(obj);  //哈哈哈
console.log(obj.name); //''哈哈哈''

暫時就先寫這么多,后續(xù)慢慢更新,希望大家喜歡,不足之處歡迎指正,O(∩_∩)O謝謝!

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容