JavaScript初学-个人笔记2-JS中的数据类型

JS包括哪些数据类型

原始类型:Undefined、Number、String、Boolean、Null
引用类型:Object以及Object的子类
前六种在ES6之前有,ES6之后多了个Symbol类型

另外:
JS中有一个运算符叫typeof
这个运算符可以在程序运行阶段动态获取变量的数据类型
typeof运算符的语法格式:
 type 变量名
typeof运算符的运算结果是以下六个字符串之一,全部小写
 "undefined"
 "number"
 "string"
 "boolean"
 "object"
 "function"
 
在JS中比较字符串是用双等号“==”

Undefined类型

Undefined类型只有一个值:undefined
当一个变量没有手动赋值,系统默认赋值undefined

<body>
<script type="text/javascript">
	var i;
	var j= undefined;
	alert(i==j);//true
	var k="undefined";//字符串
	alert(j==k);//false
</script>
</body>

Number类型

  1. Number类型包括哪些值?
    -1 1 2 3.1 3.14 NaN Infinity…
    整数、小数、不是数字、无穷大都属于Number类型
  2. isNaN(数据),结果是true表示不是一个数字,false表示是一个数字
  3. parseInt() 函数,将字符串转换成数字,并且取整数位
  4. parseFloat() 函数,将字符串转换成数字
  5. Math.ceil() 函数,向上取整
<body>
<script type="text/javascript">
	var v1=1;
	var v2=3.14;
	var v3=-100;
	var v4=NaN;
	var v5=Infinity;
	//关于NaN 表示:Not a Number,不是数组,但属于Number类型
	//什么情况下结果是NaN?运算结果本来是数字,但最后算完不是数字,结果是NaN
	var a=100;
	var b="中国人";
	alert(a/b);//NaN
	
	var c="abc";
	var d=10;
	alert(c+d);//"abc10"加号两边如果有字符串,会进行字符串拼接
	
	//Infinty 当除数为0的时候,结果为无穷大
	alert(10/0);//Infinty
	
	//isNaN()
	//用法:isNaN(数据),结果是true表示不是一个数字,false表示是一个数字
	function sum(a,b){
		if(isNaN(a)||isNaN(b)){
			alert("参与运算的必须是数字")
			return;
		}
		return a+b;
	}
</script>
</body>

Boolean类型

  1. JS中的布尔类型永远都只有两个值:true/false
  2. 在Boolean类型中有一个函数叫Boolean()
    语法格式:
    Boolean(数据)
    Boolean()函数的作用是将非布尔类型转换成布尔类型
    规律:有就是true,没有就是false
<body>
<script type="text/javascript">
	var username="jack";
	if(username){//这里Boolean()可以省略,自动转换成Boolean类型
		alert("欢迎你"+username);
	}else{
		alert("用户名不能为空");
	}
</script>
</body>

String类型

  1. 在JS中字符串可以用单引号,也可以使用双引号
  2. 在JS中,怎么创建字符串对象?
    两种方式:
    第一种:var s=“helloworld”;
    第二种(使用内置支持类):var s2=new String(“abc”);
    String是一个内置的类,可以直接用,String的父类是Object
  3. 无论是小string还是大Strng,他们的属性和函数都是通用的
  4. 关于String类型的常用属性和函数
    length属性:获取字符串长度
    常用函数:
     indexOf 获取指定字符串在当前字符串中第一次出现处的索引
     lastIndexOf 获取指定字符串在当前字符串中最后一次出现处的索引
     replace  替换(只替换第一次出现的字符串)
     substr 截取子字符串
     substring 截取子字符串
     toLowerCase 转小写
     toUpperCase 转大写
     split 拆分字符串
<body>
<script type="text/javascript">
	//小string(属于原始类型String)
	var x="abc"
	alert(typeof x);//"string"
	
	//大String(属于Object类型)
	var y=new String("abc");//"object"
	alert(typeof y);
	
	//获取字符串的长度
	alert(x.length);//3
	alert(y.length);//3
	
	//字符串替换
	alert("123abc789".replace("abc","456"));
</script>
</body>

关于substr和subtring的区别(重要
substr(初始下标,长度)
substr(出示下标,结束下标)不包含结束下标

<script type="text/javascript">
	//substr(startIndex,length)
	alert("abcdef".substr(2,4));//cdef
	//substr(startIndex,endIndex)注意:不包含endIndex
	alert("abcdef".substring(2,4));//cd
</script>

Object类型

  1. Object类型是所有类型的超类
  2. Object类包括哪些属性?
    prototype属性(常用):给类动态的扩展属性和函数(重点)
    constructor属性
  3. Object类包括哪些方法?
    toString();
    valueOf();
    toLocaleString();
  4. 在JS中怎么定义类?怎么new对象?
    定义类的语法:
    第一种:function 类名(形参){
    }
    第二种:类名=function(形参){
    }

    创建对象的语法:
    new 构造方法名(实参);//构造方法名和类名一致

例如:
User=function(username,userid){
this.username=username;
this.userid=userid;
}
var u1=new User();
var u2=new User(“zhangsan”);
var u3=new User(“lisi”,“123”);

<body>
<script type="text/javascript">
	function sayHello(){
		
	}
	//把sayHello当做函数:
	sayHello();
	//把sayHello当做类来创建对象:
	var obj = new sayHello();
	
	
	//JS中类的定义,同时也是构造函数的定义
	function User(a,b,c){//a,b,c表示形参
		this.sno=a;
		this.sname=b;
		this.sage=c;
		//函数
		this.getSname=function(){
			return this.sname;
		}
	}
	//创建对象
	var u1=new User(111,"zhangsan",12);
	alert(u1.sno);
	alert(u1.sname);
	alert(u1["sage"]);//也可以这样访问属性
	
	alert(u1.getSname());
	
	//可以通过prototype这个属性给类动态扩展函数(重点)
	User.prototype.getSage=function(){
		return this.sage;
	}
	//调用后期扩展的getSage()函数
	var sage=u1.getSage();
	alert(sage);
	
	//给String扩展一个函数
	String.prototype.hanshu=function(){
		alert("给String类扩展的函数,叫hanshu")
	}
	"abc".hanshu();
</script>
</body>

Null类型

Null(空值)类型的值只有一个,就是null
使用typeof检查一个null值时,会返回object

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值