zoukankan      html  css  js  c++  java
  • JS中的数据类型

    数据类型

    var length = 11;// 数字
    var lastName = "Gates";// 字符串
    var cars = ["Porsche", "Volvo", "BMW"];// 数组
    var x = {firstName:"Bill", lastName:"Gates"};// 对象 
    
    字符串(String)

    字符串(或文本字符串)是一串字符(比如 "qwer")。字符串被引号包围,可使用单引号或双引号。

    <script>
    	/*
    	JS中创建字符串对象有两种方式,
    	但是属性和函数都是通用的。
    	*/
    	var s = "第一种(小string)";
    	alert(typeof s);//string
    	
    	var ss = new String("第二种(大string)");
    	alert(typeof ss);//object
    	/*----------常用函数----------*/
    	var func = "JavaScript";
    	//获取字符串长度
    	alert(func.length);//10
    	//返回某个指定的字符串值在字符串中首次出现的位置
    	alert(func.indexOf("va"));//2
    	//如果要检索的字符串值没有出现,则该方法返回 -1
    	alert(func.indexOf("m"));//-1
    	//判断字符串是否包含某个子字符串
    	alert(func.indexOf("n") >= 0 ? "包含" : "不包含");//不包含
    	//返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索。
    	alert(func.lastIndexOf("ri"));//6
    	//在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
    	alert(func.replace("Java","Live"));//LiveScript
    	//substr()和substring()的区别。
    	//在字符串中抽取从start下标开始的指定数目的字符,stringObject.substr(start,length)
    	alert(func.substr(4,6));//Script
    	//提取字符串中介于两个指定下标之间的字符(不包含endIndex)。
    	alert(func.substring(1,3));//av
    </script>
    
    数字(Number)

    JavaScript 只有这一种数值类型。整数、小数、正数、负数、不是数字(NaN)、无穷大(Infinity (或-Infinity))都属于Number类型。

    <script>
    	/*
    	数字和字符串相加
    	JS的加法和级联(concatenation)都使用 + 运算符。
    	数字用加法。字符串用级联。
    	JS从左向右进行编译,
    	在有+运算符的情况下,数字相加就是数字;
    	但只要有字符串的参与,结果都是字符串级联。
    	*/
    	var x = 10;
    	var y = 20;
    	var z = "The result is: " + x + y;
    	alert(z);//The result is: 1020
    	
    	/*
    	从左到右运算时先算10+20,数字之间是加法,得30;
    	遇到字符串“30”后用级联,所以是3030。 
    	*/
    	var t = "30";
    	var result = x + y + t;
    	alert(result);//3030
    	
    	/*
    	在使用减(-)乘(*)除(/)运算符时,
    	字符串拥有数字内容的话,会被转换成数字进行运算。
    	*/
    	var n = "10";
    	var m = "20";
    	var mn = (m-n)+(m/n)+(n*m)
    	alert(mn);//212
    	
    	/*
    	NaN属于JS保留词,指示某个数不是合法数。
    	用一个非数字字符串进行除法会得到NaN(Not a Number)。
    	*/
    	var a = 11;
    	var b = "aaa";
    	alert(a / b);//NaN
    	
    /*--------------------数字方法--------------------*/
    	
    	/*全局JS函数isNaN()可以确定某个值是否是数*/
    	alert(isNaN(b));//true(表示不是一个数字)
    
    	/*全局JS函数parseInt,
    	可以将字符串自动转换成数字,
    	并且取整数位。*/
    	alert(parseInt("3.999999"));//3
    	
    	/*全局JS函数parseFloat,
    	可以将字符串自动转换成数字*/
    	alert(parseFloat(3.2) + 1);//4.2
    	
    	/*函数Math.ceil,可以向上取整*/
    	alert(Math.ceil(1.2));//2
    
    /*--------------------数字方法--------------------*/
    	
    	/*在数学运算中使用NaN的话,结果也是NaN*/
    	var nan = NaN;
    	alert(a + nan);//NaN
    	
    	/*
    	Infinity(或-Infinity)
    	是JS在计算数时超出最大可能数范围时返回的值。
    	除以0也会生成 Infinity。
    	*/
    	function inf(){
    		var myNumber = 2;
    		while (myNumber != Infinity) {
    			myNumber = myNumber * myNumber;
    		}
    		return myNumber;
    	}
    	var inf = inf();
    	alert(inf);//Infinity
    </script>
    
    布尔(Boolean)

    1、布尔值只有两个值:true 或 false。
    2、在Boolean类型中有一个函数:Boolean()。语法格式:
    Boolean(数据)
    Boolean()函数的作用是将非布尔类型转换成布尔类型,有东西就是true,没有就是false。

    <script>
    	var name = "";
    	if(name){
    		alert("欢迎你"+name);
    	}else{
    		alert("用户名不能为空!")
    	}
    </script>
    

    在这里插入图片描述

    数组(Array)

    JavaScript 数组用方括号书写,数组的项目由逗号分隔。

    对象(Object)

    1、是所有类的超类,JavaScript对象用花括号来书写,对象属性是name:value对,由逗号分隔。

    var person = {
    	firstName:"Bill", 
    	lastName:"Gates", 
    	age:62, 
    	eyeColor:"blue"};
    

    2、Object包含属性有: prototype 属性、constructor 属性;方法有:toLocaleString 方法、toString 方法、valueOf 方法。
    3、如何创建对象

    <script>
    	//如何创建对象
    	function haha(){
    		alert("haha");
    	}
    	//当做普通函数来调用
    	haha();//haha
    	//当做类来创建对象
    	var obj = new haha();//haha
    	alert(obj);//[object Object]
    </script>
    

    4、函数及扩展函数

    <script>
    	Haha = function(a,b,c){
    		//声明属性
    		this.no = a;
    		this.name = b;
    		this.age = c;
    		//函数
    		this.getAge = function(){
    			return this.age;
    		}
    	}
    	var u1 = new Haha(11,"zhangsan",20);
    	var uage = u1.age;
    	alert(uage);//20
    	//可以通过prototype这个属性来给类动态扩展属性以及函数
    	Haha.prototype.getNo = function(){
    		return this.no;
    	}
    	//调用扩展的getNo函数
    	var uno = u1.no;
    	alert(uno);//11
    	//给string扩展一个函数
    	String.prototype.xixi = function(){
    		alert("string扩展函数");
    	}
    	"aaa".xixi();//string扩展函数
    </script>
    
    空(Null)

    1、在 JavaScript 中,null 是 "nothing"。它被看做不存在的事物。但是,在 JavaScript 中,null 的数据类型是对象。
    2、可以把 null 在 JavaScript 中是对象理解为一个 bug。它本应是 null。
    3、可以通过设置值为 null 清空对象(也可以通过设置值为 undefined 清空对象):

    var person = null;// 值是 null,但是类型仍然是对象
    alert(typeof null);//object
    

    4、空值与undefined不是一回事,空的字符串变量既有值也有类型:

    var car = "";// 值是 "",类型是 "string"
    
    未定义(Undefined)

    1、在JavaScript中,没有值的变量,其值是undefined。typeof 也返回undefined。
    2、任何变量均可通过设置值为undefined进行清空。其类型也将是undefined:

    person = undefined;// 值是 undefined,类型是 undefined
    

    3、null、NaN、undefined

    <script>
    	alert(null == NaN);//false
    	alert(null == undefined);//true
    	alert(undefined == NaN);//false
    </script>
    
    JavaScript 拥有动态类型

    JavaScript 拥有动态类型。这意味着相同的变量可用作不同的类型:

    var x;               // x 为 undefined
    var x = 5;           // 现在 x 为数字
    var x = "John";      // 现在 x 为字符串
    
    typeof 运算符

    1、JS中有一个运算符叫做typeof,这个运算符可以在程序的运行阶段动态的获取变量的数据类型。
    2、typeof运算符的语法格式:
    typeof 变量名
    3、typeof运算符的运算结果是以下6个字符串之一,注意字符串都是小写(typeof运算符返回变量或表达式的类型。):
    "undefined"、"number"、"string"、"boolean"、"object"、"function"

    <script>
    	function sum(a,b){
    		if(typeof a == "number" && typeof b == "number"){
    			return a + b;
    		}
    		alert("格式错误");
    	}
    	var value = sum(2,"abc");
    	alert(value);
    	//格式错误
    	//undefined
    			
    	var value2 = sum(1,2);
    	alert(value2);//3
    			
    	var q;
    	alert(typeof q);//undefined
    			
    	var w = 11;
    	alert(typeof w);//number
    			
    	var e = "abc";
    	alert(typeof e);//string
    			
    	var r = null;
    	alert(typeof r);//object
    		
    	var t = false;
    	alert(typeof t);//boolean
    				
    	function mc(){}
    	alert(typeof mc);//function
    </script>
    
    ===运算符

    当使用=== 相等运算符后,相等的数变为不相等,因为===运算符需要类型和值同时相等。

    <script>
    	var x = 500;             
    	var y = new Number(500);
    	var z = 500;
    	alert(x === y);//false
    	/*因为x和y的类型不同。*/
    	alert(x === z);//true
    </script>
    
  • 相关阅读:
    『在线工具』 基于 xsser.me 源码 + BootStrap 前端 的 XSS 平台
    『Python』Python 调用 ZoomEye API 批量获取目标网站IP
    『Python』 多线程 共享变量的实现
    『Python』 多线程 端口扫描器
    打印机PCL漏洞原理分析
    『GitHub』Git常用命令记录
    『Python』爬行搜索引擎结果获得指定主机二级域名及IP信息
    iOS使用Runtime给分类动态绑定属性
    Swift介绍(基于Swift4版本)
    iOS中的block模板
  • 原文地址:https://www.cnblogs.com/yu011/p/13549122.html
Copyright © 2011-2022 走看看