js基本概念(上)之数据类型
2017-12-06 15:29
369 查看
语法
区分大小写
typeof(关键字)不能用作变量、函数名或操作符
而typeOf则可以,O为大写,即它不是关键字也不是保留字
标识符
第一个字符必须是一个字母、下划线(_)或一个美元符号($)
其他字符可以是字母、下划线、美元符号或数字
采用驼峰大小写格式,例:
关键字和保留字
in是关键字
如果使用了关键字作标识符,会导致”Identified Expected”错误
变量
变量是松散类型的,即可以用来保存任何类型的数据
省略var操作符可以定义全局变量
在全局作用域中声明变量,不管变量是否使用var操作符创建,都是全局变量
在函数内声明变量(不推荐,因为在局部作用域中定义的全局变量很难维护)
初始化变量并不会把它标记为任何一种数据类型,只是给变量赋值而已。因此可以在修改变量值的同时修改值的类型
数据类型
基本数据类型
Undefined
Null
Boolean
Number
String
复杂数据类型
Object(本质上是由一组无序的名值对组成的)
typeof操作符
”undefined”——如果这个值未定义
“boolean”——如果这个值是布尔值
“string”——如果这个值是字符串
“number”——如果这个值是数值
“object”——如果这个值是对象或null(null被认为是一个空的对象引用)
“function”——如果这个值是函数
从技术角度讲,函数在ECMAScript中是对象,不是一种数据类型。然而,函数也确实有一些特殊的属性,因此通过typeof操作符来区分函数和其他对象是有必要的。
几个使用typeof操作符的例子:
typeof与instanceof的区别
Undefined类型
已声明未经初始化的变量默认就会取得undefined值:
变量已声明与未声明
Null类型
从逻辑角度来看,null值表示一个空对象指针
如果定义的变量准备在将来用于保存对象,那么最好将该变量初始化为null而不是其他值。这样一来,只要直接检查null值就可以知道相应的变量是否已经保存了一个对象的引用:
undefined值是派生自null值的
变量不应显式地赋值为undefined,而显式地给对象赋值为null则是推荐的做法:
Boolean类型
Boolean(undefined) = false;
Number类型
八进制(第一位必须是零(0),然后是八进制数字序列(0-7)。如果数值超出范围,那么前导零将被忽略,后面的数值将被当做十进制数值解析)
十六(前两位必须是0x,后跟0-9、A-F(可大写也可小写))
浮点数值
保存浮点数值需要的内存空间是保存整数值的两倍
永远不要测试某个特定的浮点数值。浮点数值的最高精度是17位小数,然而进行算术计算时其精确度远远不如整数
Number.MIN_VALUE———5e-324
Number.MAX_VALUE———1.7976931348623157e+308
NaN
在ECMAScript中任何数值除以0会返回NaNR
任何涉及NaN的操作(例如NaN/10)都会返回NaN
NaN与任何值都不相等,包括NaN本身
isNaN()函数(是否不是数值)
String类型
toString()
除null和undefined外其他数据类型都有这个方法
String()
如果值有toString()方法,则调用该方法(没有参数)并返回相应的结果
如果值是null,则返回”null”
如果值是undefined,则返回”undefined”
Object()类型
通过执行new操作符后跟要创建的对象类型的名称来创建
区分大小写
typeof(关键字)不能用作变量、函数名或操作符
而typeOf则可以,O为大写,即它不是关键字也不是保留字
标识符
第一个字符必须是一个字母、下划线(_)或一个美元符号($)
其他字符可以是字母、下划线、美元符号或数字
采用驼峰大小写格式,例:
firstSecond myCar doSomethingImportant
关键字和保留字
in是关键字
如果使用了关键字作标识符,会导致”Identified Expected”错误
变量
变量是松散类型的,即可以用来保存任何类型的数据
省略var操作符可以定义全局变量
在全局作用域中声明变量,不管变量是否使用var操作符创建,都是全局变量
在函数内声明变量(不推荐,因为在局部作用域中定义的全局变量很难维护)
function test() { message = "hi"; //全局变量(省略var) } test(); alert(message); //"hi"
function test() { var message = "hi"; //局部变量 } test(); alert(message); //错误!
初始化变量并不会把它标记为任何一种数据类型,只是给变量赋值而已。因此可以在修改变量值的同时修改值的类型
var message = "hi"; message = 100; //有效,但不推荐
数据类型
基本数据类型
Undefined
Null
Boolean
Number
String
复杂数据类型
Object(本质上是由一组无序的名值对组成的)
typeof操作符
”undefined”——如果这个值未定义
“boolean”——如果这个值是布尔值
“string”——如果这个值是字符串
“number”——如果这个值是数值
“object”——如果这个值是对象或null(null被认为是一个空的对象引用)
“function”——如果这个值是函数
从技术角度讲,函数在ECMAScript中是对象,不是一种数据类型。然而,函数也确实有一些特殊的属性,因此通过typeof操作符来区分函数和其他对象是有必要的。
几个使用typeof操作符的例子:
var message = "some string"; alert(typeof message); //"string" alert(typeof(message)); //"string",括号为非必需的,因为typeof是一个操作符而不是函数 alert(typeof 95); //"number"
typeof与instanceof的区别
Undefined类型
已声明未经初始化的变量默认就会取得undefined值:
var message; alert(message == undefined); //true
变量已声明与未声明
var message; //这个变量声明之后默认取得了undefined值 var age //这个变量并没有声明 alert(message); //"undefined" alert(age); //产生错误 //所以当用typeof检测变量数据类型,结果为"undefined"的时候,有两种情况:要么是变量已声明为未初始化给它赋值,要么是变量没有声明。 alert(typeof message); //"undefined" alert(typeof age; //"undefined"
Null类型
从逻辑角度来看,null值表示一个空对象指针
var car = null; alert(typeof car); //"object"
如果定义的变量准备在将来用于保存对象,那么最好将该变量初始化为null而不是其他值。这样一来,只要直接检查null值就可以知道相应的变量是否已经保存了一个对象的引用:
if(car != null) { //对car对象执行某些操作 }
undefined值是派生自null值的
alert(null == undefined); //true
变量不应显式地赋值为undefined,而显式地给对象赋值为null则是推荐的做法:
var message = undefined; //不推荐 var car = null; //推荐
Boolean类型
Boolean(undefined) = false;
Number类型
八进制(第一位必须是零(0),然后是八进制数字序列(0-7)。如果数值超出范围,那么前导零将被忽略,后面的数值将被当做十进制数值解析)
var octalNum1 = 070; //八进制的56 var octalNum2 = 079; //无效的八进制数值--解析为79(十进制) var octalNum3 = 08; //无效的八进制数值--解析为8(十进制)
十六(前两位必须是0x,后跟0-9、A-F(可大写也可小写))
var hexNum1 = 0xA; //十六进制的10 var hexNum2 = 0x1f; //十六进制的31
浮点数值
保存浮点数值需要的内存空间是保存整数值的两倍
永远不要测试某个特定的浮点数值。浮点数值的最高精度是17位小数,然而进行算术计算时其精确度远远不如整数
if(a + b == 0.3) //不要做这样的测试! { alert("You got 0.3."); }
Number.MIN_VALUE———5e-324
Number.MAX_VALUE———1.7976931348623157e+308
NaN
在ECMAScript中任何数值除以0会返回NaNR
任何涉及NaN的操作(例如NaN/10)都会返回NaN
NaN与任何值都不相等,包括NaN本身
alert(NaN == NaN); //false
isNaN()函数(是否不是数值)
alert(isNaN(NaN)); //true alert(isNaN(10)); //false(10是一个数值) alert(isNaN("10")); //false(可以被转换为数值10) alert(isNaN("BLUE")); //true(不能被转换成数值) alert(isNaN("true")); //false(可以被转换成数值1)
String类型
toString()
除null和undefined外其他数据类型都有这个方法
String()
如果值有toString()方法,则调用该方法(没有参数)并返回相应的结果
如果值是null,则返回”null”
如果值是undefined,则返回”undefined”
var value1 = 10; var value2 = true; var value3 = null; var value4; alert(String(value1)); //"10" alert(String(value2)); //"true" alert(String(value3)); //"null" alert(String(value4)); //"undefined"
Object()类型
通过执行new操作符后跟要创建的对象类型的名称来创建
var o = new Object();
相关文章推荐
- Js———数据类型、操作符、语句 (基本概念)
- JS高程NO3--基本概念(语法,数据类型,操作符,语句,函数)
- js基本概念注意点—数据类型
- JS高级程序设计学习笔记之第三章基本概念(语法,数据类型,流控制语句,函数)——查漏补缺
- js基本数据类型和typeof
- A Byte of Python 笔记(2)基本概念:数、字符串、转义符、变量、标识符命名、数据类型、对象
- 好博客要记录:JVM基础概念总结:数据类型、堆与栈、基本类型与引用类型
- H5面试题---介绍js的基本数据类型
- Redis(三) 概念,基本数据类型及其安装相关
- JavaScript基础——基本概念:数据类型及其转换
- javascript复习笔记(一)js基础,基本语法,数据类型,控制流程
- 第3章 基本概念(3)数据类型:Number类型 String类型 Object类型
- JS中的基本数据类型和引用数据类型
- MongoDB学习(二):数据类型和基本概念
- js基本知识点总结-----js数据类型
- Js 基本数据类型、引用数据类型
- MongoDB学习(二):数据类型和基本概念
- JS基本数据类型
- js基本数据类型
- 每日学习心得:Js基本数据类型常用方法扩展