一、综述

javaScript中的数据类型分为两类:

简单类型:Boolean,Number,String

引用类型:Object

其他:undefined代表变量没有初始化,null代表引用类型为空,typeOf null 返回object

1)简单类型和引用类型的差异,和其他语言类似,如存储位置等

2)对于Boolean,Number,String这三种简单类型,javascript还为之提供了对应的基本包装类型,基本包装类型和引用类型的差别在于对象的生存周期,在读取模式下访问基本类型值时,后台对自动为之创建基本包装类型的对象,提供了相关方法可以操作基本类型,但是操作基本类型值的语句一经执行完毕,就会立即销毁新创建的基本包装类型。

3)函数也是对象,这点和java等语言不通,因此函数也可以拥有方法,可以作为函数形参等。

4)判断元素类型:使用typeOf操作符(返回值可能是Boolean,Number,String,Object,Function,Undefined),判断引用类型具体是哪一个对象的实例,使用isinstanceOf

二、基本类型

var a=字面量 的形式来定义基本类型

1.Boolen

1)具有两个字面量true,false(注意区分大小写)

2)将其他类型的值转换为布尔值,采用Boolen(var);具体转换规则可以参见教材。如空字符串会转换为false

3)在if()等判断中,boolean转换时自动进行的。

2.Number类型

1.有进制区别,有整数和浮点数之分。定义都适应var a=字面量 的形式

2.Number.MIN_VALUE代表最小数值,Number.MAX_VALUE代表最大数值,全局属性Infinity代表正无穷,-Infinity代表负无穷,NaN代表非数,可以使用isNan()进行判定

3,将其他任何类型转换为数值类型可以用Number()函数,将字符串转换为数值类型使用parseInt(var,进制)或者parseFloat(var)

4,指定小数点位数可以使用num变量.toFixed(3),转换为指数类型表示可以使用num变量.toExponetial()

5,String类型

1,length属性:字符串长度

2,将某个值转换为字符串,可以对其调用toString(),最简单的是加上一个空字符串

字符串相关操作方法:

1,字符串拼接,使用"+",也可用concat()方法

2,字符串切割,slice(),substr(),substring()方法,用法大同小异,掌握一种即可

5,查找子字符串:indexof()和lastIndexof();另一个查找方法是search(),参数可以是字符串或者正则表达式

6,删除前后空格:trim()

7,大小写转换:toLowerCase()和toUpperCase()

8,正则匹配:match()方法,调用效果和正则对象RegExp的exec()方法相同

9,字符串替换:repalce(),第一个参数可以是字符串或者正则表达式,如果是字符窜,那么只替换第一个子字符串;如果是正则,则可以替换所有匹配的子字符串。

10,字符串比较:因为字符串是基本类型,因此可以使用"=="进行比较;‘===’是强等。此外还有一个方法是localCompare()方法,会根据字母表中的排序比较大小,返回正数,0或者负数。

11,字符串切割:split()。分隔符可以是子字符串,也可以是正则

12,字符串中访问特定字符:charAt()或者charCodeAt();返回对应的字符或者字符编码

三、引用类型

引用类型都是Object或者其子类(js其实并没有子类这个概念?),js内置了一些引用类型来方便操作,如Date,Array,Math,RegExp等,这些类型都是全局对象window的属性。所有的object类型都有以下属性或方法

constuctor
hasOwnProperty(propertyName)
isPrototypeOf(object)
propertyIsEnumerable(propertyName)
toString()
valueOf()
toLocalString()

1.object类型

感觉js中的object类型更像java中的hashMap或者python中的dict类型,也就是键值对的感觉

1)新建,两种方法,构造函数和字面量

//构造函数的方法
var person=new Object();
person.name="bobo";
person.age=;
//字面量的方法
var person={
  name="bobo",
  age=
}

2)属性可以加引号也可以不加;访问属性可以用点表示法,也可用方括号表示法

2.Array类型

1.新建,两种方法,构造函数和字面量

//构造函数
var list=new Array();
//字面量
,,}

和java等语言中的数组不同的是,js数组的每一项可以保存不同类型的变量,大小也是可以动态调整的

检测一个变量是否是数组,可以使用Array.isArray方法

2.相关属性和方法

1)数组长度:length,这个属性不是只读的,通过设置这个属性,可以从数组末尾移除项(设置值<实际长度);或者向数组中添加项

2)将数组转换为字符串:join("分割符"))

3)相关栈方法:pusth(),pop();shift(),push();unshift(),pop()通过这些方法,可以使用数组来模拟队列或者栈

4)数组排序:sort(),reverse()可以接收一个排序函数作为参数

5)数组合并:concat()

6)数组拆分:slice(),接收一个或者两个参数,即要返回项的开始位置和结束位置

7)功能强大的splice():可以用于删除,插入,替换数组中的某一项

8)查找数组中的元素:indexOf()和lastIndexOf()

9)相关迭代方法,这些迭代方法的参数都是一个函数,

every(),对数组中的每一项运行给定函数,如果每一项都返回true,那么就返回true

filter(),对数组中的每一项运行给定函数,返回该函数会返回true的项组成的数组

forEach(),对数组中的每一项运行给定函数,没有返回值

map(),对数组中的运行给定函数,返回每次调用该函数的结果组成的数组

some(),对数组中的每一项运行给定函数,如果该函数的任一项返回ture,则返回true

10)归并方法

reduce()和reduceRight(),接受参数为函数function(prev,cur,index,array)

3,Date类型

1.创建

var now=new Date()

2,常用属性和方法

1)Date.now()返回当前的日期和事件的毫秒数

2)getFullYear(),getMonth(),getDate(),getDay(),getHours()等

4,Math对象(有点类似于静态方法调用的感觉)

常用操作:

1)Math.min()和Math.max(),传入的参数用,分割。如果得到数组中的最大值,可以使用Math.max.apply(Math,arrayVar)的形式

2)Math.ceil(),Math.floor(),Math.round()

3)Math.random()

4)其他各种数学运算方法

5,RegExp类型

1,创建,有字面量和构造函数两种方法

var express=/pattern/flags

var pattern=new RegExp("[bc]at","i"),在使用构造函数创建的时候,因为参数是字符串,所以在需要的时候要进行双重转义

2.常用属性和方法

exec()  接受字符串参数,会返回匹配组相关信息,关于正则一向不是很明白,用到时候再看吧

test() 接受字符串参数,返回是否匹配的布尔值

6,Function类型

在js中,函数也是对象,也和其他引用类型一样具有属性和方法,因此可以可以作为函数的形参,也可以作为函数的返回值。

1)在函数内部,有两个特殊的对象arguments和this,this和其他语言中的this一样,这里重点届时arguments

js中没有函数签名的概念,也不能实现传统意义上的重载。具体的说,js函数不在乎传递进来多少个参数,也不在乎是否通过命名的形参传入,在函数体内,可以通过arguments对象访问函数的参数数组。

arguments拥有一些属性:

callee:指向当前的函数对象

caller:指向调用当前函数的函数的引用

函数的属性和方法

1)length属性:代笔函数希望接收的参数的个数

2)prototype这个回头再说吧,对js的引用类型而言,prototype是保存它们所有实例方法的真正所在

函数方法

apply()和call(),可以在特定的作用于调用函数,接受的第一个参数是调用函数的对象,另一个是传入函数的参数。apply()使用数组传入参数,而call()则使用,来分割传入的参数

7,URI编码方法

1)encodeURI()主要用于对整个uri进行编码,与之对应的是decodeURI()

2)encodeURIComponent()主要用于对于附加在URI后面的queryString部分进行编码,与之对应的是decodeURIComponent()

javaScript中的数据类型的更多相关文章

  1. JavaScript 中的数据类型

    Javascript中的数据类型有以下几种情况: 基本类型:string,number,boolean 特殊类型:undefined,null 引用类型:Object,Function,Date,Ar ...

  2. Javascript中的数据类型之旅

    虽然Javascript是弱类型语言,但是,它也有自己的几种数据类型,分别是:Number.String.Boolean.Object.Udefined.Null.其中,Object属于复杂数据类型, ...

  3. 【译】Javascript中的数据类型

    这篇文章通过四种方式获取Javascript中的数据类型:通过隐藏的内置[[Class]]属性:通过typeof运算符:通过instanceof运算符:通过函数Array.isArray().我们也会 ...

  4. javascript 中检测数据类型的方法

    typeof 检测数据类型 javascript 中检测数据类型有好几种,其中最简单的一种是 typeof 方式.typeof 方法返回的结果是一个字符串.typeof 的用法如下: typeof v ...

  5. 鉴定JavaScript中的数据类型

    众所周知,JavaScript是一门弱类型的语言,但是这并不代表JavaScript中没有数据类型.JavaScript中常见的数据类型有string.number.object等等,通常我们使用ty ...

  6. JavaScript中基本数据类型之间的转换

    在JavaScript中共有六种数据类型,其中有五种是基本数据类型,还有一种则是引用数据类型.五种基本数据类型分别是:Number 数值类型.String 字符串类型.Boolean 布尔类型, nu ...

  7. JavaScript中基本数据类型和引用数据类型的区别(栈——堆)

    JavaScript中基本数据类型和引用数据类型的区别 1.基本数据类型和引用数据类型 ECMAScript包括两个不同类型的值:基本数据类型和引用数据类型. 基本数据类型指的是简单的数据段,引用数据 ...

  8. 面试说:聊聊JavaScript中的数据类型

    前言 请讲下 JavaScript 中的数据类型? 前端面试中,估计大家都被这么问过. 答:Javascript 中的数据类型包括原始类型和引用类型.其中原始类型包括 null.undefined.b ...

  9. 简单回忆一下JavaScript中的数据类型

    说到JavaScript,大家都应该知道,它是一门脚本语言,也是一门弱类型语言,也是一门解析型的语言,同时也是一门动态类型的语言. 很好,至于JavaScript中数据类型.其分为基本数据类型和复杂数 ...

随机推荐

  1. 交叉报表列头排序时遇到的oracle问题—oracle ORA-12704:字符集不匹配、varchar2转化为nvarchar2字符缺失、case when else后的字符类型要一致

    在做交叉报表列头的排序时,遇到这三个问题,下面具体来说一下. 设计的数据库的表结构如图1所示: 图1 要处出来student_name_,s.grade_,s.subject_name_,这三个属性, ...

  2. FZU 1025 状压dp 摆砖块

    云峰菌曾经提到过的黄老师过去讲课时的摆砖块 那时百度了一下题目 想了想并没有想好怎么dp 就扔了 这两天想补动态规划知识 就去FZU做专题 然后又碰到了 就认真的想并且去做了 dp思想都在代码注释里 ...

  3. ThinkPHP 3.2.2 在 volist 多重循环嵌套中使用 if 判断标签

    今天在 ThinkPHP 3.2.2 的试图模板中使用多重循环,用来把相应类别下对应的文章都依次循环出来,但是无论如何只能循环出类别,类别下的文章无法循环出,( 错误 ) 代码如下: <voli ...

  4. twistd 启动Python服务

    twistd 启动Python服务 shell 脚本如下: #! /usr/bin/env sh MAIN_MODULE=pdf_task.py ROOT="/var/www/pdf/&qu ...

  5. CentOS安装TortoiseSVN svn 客户端

    CentOS安装TortoiseSVN svn 客户端   一.CentOS安装TortoiseSVN yum install -y subversion 二.SVN客户端命令 1.查看帮助 命令:s ...

  6. nor flash和nand flash的区别

    NOR和NAND是现在市场上两种主要的非易失闪存技术.Intel于1988年首先开发出NOR flash技术,彻底改变了原先由EPROM和EEPROM一统天下的局面.紧接着,1989年,东芝公司发表了 ...

  7. Web Service性能测试方案

    目录: 1.web Service简介 2.SoapUI介绍 3.使用SoapUI进行web service性能测试 4.使用LR进行web service性能测试 5.使用JMeter进行web s ...

  8. 启用“关闭自动根证书更新”,解决Windows系统各种卡顿的问题(Visual studio 卡、远程桌面mstsc卡、SVN卡)

    最近,发现在Win7下面一系列操作都会出现卡顿的情况: 1.  Visual studio 启动调试和关闭调试时,都会卡上半分钟左右 2.  使用远程桌面mstsc.exe,点击连接时,也会卡上半分钟 ...

  9. JS时间戳格式化日期时间 由于mysql数据库里面存储时间存的是时间戳,取出来之后,JS要格式化一下显示。

    //时间戳转时间 function RiQi(sj) { var now = new Date(sj*1000); var year=now.getFullYear(); var month=now. ...

  10. BLE-NRF51822教程17-DFU使用手机升级

    演示的工程是 [application]    nRF51_SDK_10.0.0_dc26b5e\examples\ble_peripheral\ble_app_hrs\pca10028\s110_w ...