首页 > 代码库 > ECMAScript基本数据类型

ECMAScript基本数据类型

 ECMAScript有5种基本数据类型 Undefined、Null、Boolean、Number 和 String。

  1. Undefined类型
  • 未声明、声明但未初始化的变量typeof判定数据类型的时候都是 undefined
  • 声明但未初始化的变量可以对其进行undefined值类型可以执行的操作
  • 未声明的变量对其使用非赋值操作都会出错
var JsTest=function(){
  
  var str;
   console.log(str==undefined);//true
console.log(str);//undefined
// str1=9+str; console.log(str1)//Uncaught ReferenceError: str1 is not defined // 数据类型判断 console.log(typeof str);//undefined console.log(typeof str1);//undefined
};

 2.Null类型

  • null表示一个空的对象指针,用于初始化空对象变量
  • null是object的一个派生,typeof返回object
var JsTest=function(){

  var oj=null;
  console.log(typeof oj);//object
  console.log(typeof null);//object

  console.log(null==undefined);//true
 
};

3.Boolean类型 (true、false)

var JsTest=function(){
  
 //1、布尔类型只有两个值 true和false
 //2、其它类型的值可以转换成布尔值(转换规则见下表)
 
 //转换方式:判断语句隐式转换
  var str="hello world!"
  if (str) {
      console.log("true");//输出true,说明条件成立
  }
  //通过Boolean函数显示转换
  console.log(Boolean(str));//输出true
 
};
数据类型 转换为true 转换为false
Boolean True false
String 非空字符串 空字符串 “”
Nbmber 非零数字值 0和NaN
Object 任何非空对象 null
undefined / undefined

 

 

 

 

 

 

4.Number类型

var JsTest=function(){
  
 // 整数
 var num1=10;//十进制
 var num2=07;//八进制
 var num3=0xf;//十六进制

// console.log(+0==-0);//true, +0和-0是相等的


 // 浮点数(保存浮点数的内衬空间是保存整数的两倍)
 var numFloat=1.2;//小数点后面必须有一个有效的整数,不然会被ECMAScript自动化整
 

// 数值范围
//console.log(Number.MIN_VALUE);//5e-324   最小值
//console.log(Number.MAX_VALUE);//1.7976931348623157e+308 最大值

// 超出数值范围 +Infinity(正无穷) -Infinity(负无穷)
var a=Number.MAX_VALUE+1;
var b=Number.MIN_VALUE+Number.MAX_VALUE;

console.log(a+2);//输出还是最大值,在增加也不会变化
console.log(b);//输出:1.7976931348623157e+308

console.log(Number.MIN_VALUE-1);//输出:-1,这里有点搞不懂



// 数值超出有效范围之后在进行计算是无意义的
// 判断一个值是否超出数值表示范围:
console.log(isFinite(a));//true



// NaN非数值
// 处理数值操作时出现的特殊情况
 console.log(10/"d");//NaN
 console.log(NaN+10);//NaN 有NaN参与的计算都返回NaN
 console.log(NaN==NaN)//false 不能判等感觉有点方
 console.log(isNaN(10/‘a‘));//true 判断是否是NaN


};

 

5.String 类型

var JsTest=function(){
  
  // 定义方式
 var str="JavaScript";
 var str1=‘hello world!‘;
  console.log(str);//JavaScript
  console.log(str1);//hello world!

//字符串拼接
console.log(str+","+str1+"!");//JavaScript,hello world!!

//字符长度属性
console.log(str.length);//10 ,字符中的空格也算,有字符字面量也算
var str2="hello你 好!\n";
console.log(str2.length);//10中文字符也按字数算长度


};

 


基本类型的特点

 1.基本数据类型是按值访问的,操作的实际是保存在变量中的值。

 2.给基本类型设置属性和方法是不允许的。

var name=‘jay‘;
name.len=3;
console.log(name.len);//undefined

 

 3.一个基础类型变量给另外一个变量赋值的时候,只是单纯的值赋值,赋值之后两个变量完全独立互不影响。

var num1=10;
var num2=num1;

num2+=15;
console.log(num1);//10
console.log(num2);//25

 4.函数传参的时候,基本类型也是按值传递的,只进行简单的值复制。

 


 

 检查数据类型

 对于基本数据类型使用typeof操作符可以检测出来

var num1=10;
var str="ssss";
var tag=true;
var num;
var car=null;
var obj=new Object();

console.log(typeof num1); //number
console.log(typeof str);//string
console.log(typeof tag);//boolean
console.log(typeof num);//undefined
console.log(typeof car);//objec
console.log(typeof obj);//object

ECMAScript基本数据类型