数据类型包括:基本数据类型和引用数据类型
基本数据类型指的是简单的数据段,引用数据类型指的是有多个值构成的对象。
当我们把变量赋值给一个变量时,解析器首先要确认的就是这个值是基本类型值还是引用类型值
一.基本数据类型
1. number
var a = 123;
//typeof 检查当前变量是什么数据类型
console.log(typeof a)
//特殊情况
var a1 = 5/0;
console.log(typeof e1) //Infinity 无限大. number类型
2. string
var str = '123'
console.log(typeof str)
3. boolean
var b1 = false;
console.log(typeof b1)
4. null
var c1 = null;//空对象. object
console.log(c1)
5. undefined
var d1;
//表示变量未定义
console.log(typeof d1)
二.常用内置属性
String --> 相当于Python 字符串
Array --> 相当于Python 列表
Date --> 相当于Python time
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
等于indexEnd
,substring
返回一个空字符串。 - 如果省略
indexEnd
,substring
提取字符一直到字符串末尾。 - 如果任一参数小于 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
三、数据类型转换
(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