javascript學習三、數據類型、數據類型轉換、運算符

數據類型包括:基本數據類型和引用數據類型html

基本數據類型指的是簡單的數據段,引用數據類型指的是有多個值構成的對象。python

當咱們把變量賦值給一個變量時,解析器首先要確認的就是這個值是基本類型值仍是引用類型值es6

一.基本數據類型

1. number數組

var a = 123;
//typeof 檢查當前變量是什麼數據類型
console.log(typeof a)
//特殊狀況
var a1 = 5/0;
console.log(typeof e1) //Infinity 無限大. number類型

2. stringdom

var str  = '123'
console.log(typeof str)

3. boolean函數

var b1 = false;
console.log(typeof b1)

4. nullspa

var c1 = null;//空對象. object
console.log(c1)

5. undefinedcode

var d1;
//表示變量未定義
console.log(typeof d1)

 

二.經常使用內置屬性

String       --> 至關於Python 字符串
Array        --> 至關於Python 列表
Date         --> 至關於Python timehtm

Math         -->至關於Python random對象

所謂內置對象就是ECMAScript提供出來的一些對象,咱們知道對象都是有相應的屬性和方法

 

1.字符串String

字符串方法

 

(1) chartAt() 返回指定索引的位置的字符

var str = 'alex';
var charset = str.charAt(1);
console.log(charset);//l

(2) concat 返回字符串值,表示兩個或多個字符串的拼接

var str1 = 'al';
var str2  = 'ex';
console.log(str1.concat(str2,str2));//alexex

(3) replace(a,b) 將字符串a替換成字符串b

var a = '1234567755';
var newStr = a.replace("4567","****");
console.log(newStr);//123****755

(4) indexof() 查找字符的下標,若是找到返回字符串的下標,找不到則返回-1 。跟seach()方法用法同樣

var str = 'alex';
console.log(str.indexOf('e'));//2
console.log(str.indexOf('p'));//-1

(5) slice(start,end) 提取一個字符串的一部分,並返回一新的字符串。左閉右開 分割字符串

var str = '小馬哥';
console.log(str.slice(1,2));//馬

(6) split('a',1) 以字符串a分割字符串,並返回新的數組。若是第二個參數沒寫,表示返回整個數組,若是定義了個數,則返回數組的最大長度

var  str =  '個人天呢,a是嘛,你在說什麼呢?a哈哈哈';
console.log(str.split('a'));//["個人天呢,", "是嘛,你在說什麼呢?", "哈哈哈"]

(7) substr(start,length) 返回一個字符串中從指定位置開始到指定字符數的字符。 

var  str =  '個人天呢,a是嘛,你在說什麼呢?a哈哈哈';
console.log(str.substr(0,4));//個人天呢

(8) toLowerCase()轉小寫

var str = 'XIAOMAGE';
console.log(str.toLowerCase());//xiaomage

(9) toUpperCase()轉大寫

var str = 'xiaomage';
console.log(str.toUpperCase());

(10) substring(indexStart,indexEnd) 提取字符串中介於兩個指定下標之間的字符。返回的子串包括 開始 處的字符,但不包括 結束 處的字符

  • 若是 indexStart 等於 indexEndsubstring 返回一個空字符串。
  • 若是省略 indexEndsubstring 提取字符一直到字符串末尾。
  • 若是任一參數小於 0 或爲 NaN,則被看成 0。
  • 若是任一參數大於 stringName.length,則被看成 stringName.length
  • 若是 indexStart 大於 indexEnd,則 substring 的執行效果就像兩個參數調換了同樣

(11) trim() 去除字符串兩邊的空白

特別:

//1.將number類型轉換成字符串類型
var num = 132.32522;
var numStr = num.toString()
console.log(typeof numStr)

//四捨五入
var newNum = num.toFixed(2)
console.log(newNum)

 

2.數組Array

(1) 數組的建立方式

  • 字面量方式建立(推薦你們使用這種方式,簡單粗暴)
var colors = ['red','color','yellow'];
  • 使用構造函數(後面會講)的方式建立 使用new關鍵詞對構造函數進行建立對象
var colors2 = new Array();

(2) 數組的賦值

var arr = [];
//經過下標進行一一賦值
arr[0] = 123;
arr[1] = '哈哈哈';
arr[2] = '嘿嘿嘿'

(3) 數組的經常使用方法

(3.1) 數組的合併 concat()

var north = ['北京','山東','天津'];
var south = ['東莞','深圳','上海'];
        
var newCity = north.concat(south);
console.log(newCity)

(3.2) join() 將數組中的元素使用指定的字符串鏈接起來,它會造成一個新的字符串

var score = [98,78,76,100,0];
var str = score.join('|');
console.log(str);//98|78|76|100|0

(3.3) 將數組轉換成字符串 toString()

var score = [98,78,76,100,0];
//toString() 直接轉換爲字符串  每一個元素之間使用逗號隔開
           
var str = score.toString();
console.log(str);//98,78,76,100,0

(3.4) slice(start,end); 返回數組的一段,左閉右開

var arr = ['張三','李四','王文','趙六'];
var newArr  = arr.slice(1,3);
console.log(newArr);//["李四", "王文"]

(3.5) pop 刪除數組的最後一個元素並返回刪除的元素

var arr = ['張三','李四','王文','趙六'];
var item = arr.pop();
console.log(arr);//["張三", "李四","王文"]
console.log(item);//趙六

(3.6) push() 向數組末尾添加一個元素或多個元素,並返回新的長度

var arr = ['張三','李四','王文','趙六'];
var newLength= arr.push('小馬哥');//能夠添加多個,以逗號隔開
console.log(newLength);//5
console.log(arr);//["張三", "李四","王文","趙六","小馬哥"]
 

(3.7) reverse() 翻轉數組

var names = ['alex','xiaoma','tanhuang','angle'];
       
//4.反轉數組
names.reverse();
console.log(names);

(3.8) sort對數組排序

var names = ['alex','xiaoma','tanhuang','abngel'];
names.sort();
console.log(names);// ["alex", "angle", "tanhuang", "xiaoma"]

(3.9) 判斷是否爲數組:isArray()

 布爾類型值 = Array.isArray(被檢測的值) ;

(3.10) shift() 刪除並返回數組的第一個元素

(3.11) unshift() 向數組的開頭添加一個或更多元素,並返回新的長度

 

3.object

 

3、數據類型轉換

(1).將數值類型轉換成字符串類型

隱式轉換

var n1 = 123;
var n2 = '123';
var n3 = n1+n2;
// 隱式轉換
console.log(typeof n3);

強制類型轉換

複製代碼
var n1 = 123;
// 強制類型轉換String(),toString() var str1 = String(n1); console.log(typeof str1); var num = 234; console.log(num.toString())
複製代碼

(2).將字符串類型轉換成數值類型

複製代碼
var  stringNum = '789.123wadjhkd';
var num2 =  Number(stringNum);
console.log(num2)

// parseInt()能夠解析一個字符串 而且返回一個整數
console.log(parseInt(stringNum))
console.log(parseFloat(stringNum));
複製代碼

(3).任何數據類型均可以轉換爲boolean類型

複製代碼
var b1 = '123'; 
var b2 = 0;
var b3 = -123

var b4 = Infinity; 
var b5 = NaN;

var b6; //undefined
var b7 = null;

// 非0既真
console.log(Boolean(b7))

 

四.運算符

js中的運算符跟python中的運算符有點相似,但也有不一樣。所謂運算,在數學上,是一種行爲,經過已知量的可能的組合,得到新的量。

(1)賦值運算符

以var x = 12,y=5來演示示例|

(2)算數運算符

var a = 5,b=2

(3)比較運算符

var x = 5;

(4)特殊狀況

字符串拼接+字符串運算 特殊狀況。python中有拼接字符串中更簡便的辦法,其實在js中也有,你們能夠百度引擎搜索es6模板字符串。(擴展)

複製代碼
var  firstName  = '小';
var lastName = '馬哥';
var name = '伊拉克';
var am = '美軍';
// 字符串拼接
var str = "2003年3月20日,"+name+"戰爭爆發,以美軍爲主的聯合部隊僅用20多天就擊潰了薩達姆的軍隊。這是繼十多年前的海灣戰爭後,"+am+"又一次取得的大規模壓倒性軍事勝利。"
var fullStr = str;
console.log(fullStr)

var fullName = firstName +" "+ lastName;
console.log(fullName)
複製代碼
// 不能對字符串進行+運算 只能拼接
var a1 = '1';
var a2 = '2';
console.log(a1+a2) //12
var b1 = 'one';
var b2  = 'two';

// NaN. ==== not a number 是number類型
console.log(typeof(b1*b2))

 

 

5.Date日期對象

建立日期對象只有構造函數一種方式,使用new關鍵字

//建立了一個date對象
var myDate = new Date();

//建立日期對象
var myDate=new Date();
        
//獲取一個月中的某一天
console.log(myDate.getDate());

//返回本地時間
console.log(myDate().toLocalString());//2018/5/27 下午10:36:23

寫個函數獲取時間如:2019年06月06日 17:47:32

function getTime() {
    var date_obj= new Date();
    var year=date_obj.getFullYear();
    var month=date_obj.getMonth()+1;
    var day=date_obj.getDate();
    var hour=date_obj.getHours();
    var minute=date_obj.getMinutes();
    var seconds=date_obj.getSeconds();
    var week=date_obj.getDay();


    return year+"年"+month+"月"+f(day)+"日"+" "+hour+": "+minute+" :"+seconds+" "+num_week(week)
}
//Date方法:
alert(getTime());

function f(num) {
    if (num<10){
         return "0"+num;
    }
    return num;
}
function num_week(n) {
    week=["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]
    return week[n]
}

注意:以上getxxx的方法都是對時間的獲取,若是要設置時間,使用setxxx,請參考連接:http://www.runoob.com/jsref/jsref-obj-date.html

 

6.Math 內置對象

經常使用內置對象

 6.1 Math.ceil() 向上取整,'天花板函數'

var x = 1.234;
//天花板函數  表示大於等於 x,而且與它最接近的整數是2
var a = Math.ceil(x);
console.log(a);//2

6.2 Math.floor 向下取整,'地板函數'

var x = 1.234;
// 小於等於 x,而且與它最接近的整數 1
var b = Math.floor(x);
console.log(b);//1

6.3 求兩個數的最大值和最小值

//求 兩個數的最大值 最小值
console.log(Math.max(2,5));//5
console.log(Math.min(2,5));//2

6.4 隨機數 Math.random()

var ran = Math.random();
console.log(ran);[0,1)

//0-100隨機數
var num=Math.random()*100
console.log(Math.round(num))

若是讓你取100-200之間的隨機數,怎麼作?

背過公式:min - max之間的隨機數: min+Math.random()*(max-min)

以上是我們介紹的JS經常使用對象的方法,若是想參考更多內容,請參考連接:http://www.runoob.com/jsref/jsref-tutorial.html

相關文章
相關標籤/搜索