一:总体的类型系

基本类型:数字类型(number),字符串类型(string),布尔类型(boolean);

复合类型:对象(对象,函数,数组等);

无类型:null(有定义),undefined(未定义).

js中获取类型:typeof

声明类型统一用:var

基本类型又可以称为数据类型,每种数据类型都有相对应的对象类型(包装类型)。

包装类型的作用:提供属性,方法等功能。

number--Number

string--String

boolean--Boolean

var number=10;
number.toString();//number是一个基本类型,它又是如何能实现toString()方法的呢?

在数据操作的过程中,number在内存中创建临时的与之对应的包装类型,并执行toString方法,将结果返回,同时释放这个包装类型。

在JavaScript中判断等于和不等于有两种方式:

1.==和!=

只判断结果是否相同(存在隐式转换的问题)

2.===和!==

判断结果和类型是否都相同

var num=1;
var str="1"; num==str; //返回true
num===str;//返回false

二:三种基本的数据类型

1.string类型:字符串类型

  +;表示连接

var str1="Hello";
var str2="JavaScript"; var str=str1+str2;//str="Hello JavaScript"

length;字符串长度

var str="dennis";

var length=str.length;//length的值为6

  charAt(i);获得字符串中某一个位置的字符

var str="dennis";
var char=str.charAt(1);//char=e

  substring(StartIndex,EndIndex);获取子字符串,从开始位置到结束位置

  substr(StartIndex,Length);获取子字符串,从开始位置到指定长度的位置

var str="Hello JavaScript";
var str1=str.substring(0,6); //str1="Hello"
var str2=str.substr(2,6); //str2="llo Ja"

  split('|',数字);将字符串按某个字符分离,其中数字参数是可选的。

<script type="text/javascript">

var str="How are you doing today?"

document.write(str.split(" ") + "<br />")
document.write(str.split("") + "<br />")
document.write(str.split(" ",3)) </script>

结果:

How,are,you,doing,today?
H,o,w, ,a,r,e, ,y,o,u, ,d,o,i,n,g, ,t,o,d,a,y,?
How,are,you

2. number类型:数字类型

  number类型中有很多方法,参考 http://www.w3school.com.cn/jsref/jsref_obj_number.asp

  几种特殊的数字类型:NaN(不是一个数字的数字类型),判断可以用 isNaN();

            Infinity 无穷,判断可以用 isFinite();

var num=0/0;
alert(num); //输出NaN var num1=10/0;
alert(num1); //输出Infinity

  对应的包装类型Number

  Number.MAX_VALUE  //数字的最大值

  Number.MIN_VALUE  //数字的最小值

  Number.POSITIVE_INFINITY  //正无穷

  Number.NEGATIVE_INFINITY //负无穷

  document.write(Number.MAX_VALUE + "<br />");  //数字的最大值

    document.write(Number.MIN_VALUE + "<br />");  //数字的最小值

    document.write(Number.POSITIVE_INFINITY + "<br />");  //正无穷

    document.write(Number.NEGATIVE_INFINITY + "<br />"); //负无穷)

结果:

1.7976931348623157e+308
5e-324
Infinity
-Infinity

3.boolean类型:布尔类型

布尔(逻辑)只能有两个值:true 或 false。

对应的包装类型Boolean用法参见:http://www.w3school.com.cn/jsref/jsref_obj_boolean.asp

  

JavaScript的类型体系的更多相关文章

  1. JavaScript事件类型

    JavaScript事件类型 Web浏览器中可能发生的事件有很多类型.这里我将主要将下面几种常用的事件类型: UI事件 焦点事件 鼠标与滚轮事件 键盘与文本事件 复合事件 变动事件 HTML5事件 设 ...

  2. Flow: JavaScript静态类型检查工具

    Flow: JavaScript静态类型检查工具 Flow是Facebook出品的,针对JavaScript的静态类型检查工具.其代码托管在github之上,并遵守BSD开源协议. 关于Flow 它可 ...

  3. javascript 操作符类型隐性转换

    javascript 操作符类型隐性转换 (一).一元操作符只能操作一个值的操作符叫做一元操作符1.递增和递减操作符a. 在应用于一个包含有效数字字符的字符串时,先将其转换为数字值,再执行加减1的操作 ...

  4. javascript学习-类型判断

    javascript学习-类型判断 1.类型判断的的武器 javascript中用于类型判断的武器基本上有以下几种: 严格相等===,用来判断null,undefined,true,false这种有限 ...

  5. JavaScript的类型自动转换高级玩法JSFuck

    0 前言 最开始是不小心在微信公众号(程序员大咖)看到一篇JS的高逼格代码,然后通过里面的链接跳转到了JSFuck的wiki,就像顺着迷宫找宝藏的感觉,感叹JS的自动类型转换的牛逼. 1 样例 (!( ...

  6. 面向对象的JavaScript --- 动态类型语言

    面向对象的JavaScript --- 动态类型语言 动态类型语言与面向接口编程 JavaScript 没有提供传统面向对象语言中的类式继承,而是通过原型委托的方式来实现对象与对象之间的继承. Jav ...

  7. javascript 字典类型的使用

    javascript  字典类型的使用 1.使用Array: var arr = new Array(); arr["zs"] = "zhangsan"; ar ...

  8. javascript变量类型及作用域

    javascript变量类型及作用域 一.简介 变量类型 ECMAScript变量可能包含两种不同类型的数据值:基本类型和引用类型. 基本类型 基本类型指的是简单的数据段,5种基本数据类型:undef ...

  9. js课程 1-3 Javascript变量类型详解

    js课程 1-3  Javascript变量类型详解 一.总结 一句话总结:js对象点(属性方法),json对象冒号(属性方法).属性和方法区别只有一个括号. 1.json对象中的函数的使用? 函数名 ...

随机推荐

  1. 《JavaScript 实战》:Tween 算法及缓动效果

    Flash 做动画时会用到 Tween 类,利用它可以做很多动画效果,例如缓动.弹簧等等.我这里要教大家的是怎么利用 Flash 的 Tween 类的算法,来做js的Tween算法,并利用它做一些简单 ...

  2. BZOJ做题记录[0512~?]

    觉得做一道开一篇真不好...好多想找的东西都被刷下去了... 至于?的日期究竟到什么时候...还是看心情...但是估计不会超过七天吧 最后更新时间:05/19 10:42 [05/14 10:56]我 ...

  3. hash(2018年CSUST省赛选拔赛第一场B题+hash+字典树)

    题目链接:http://csustacm.com:4803/problem/1006 题目: 思路:正如题目一样,本题是一个hash,比赛的时候用的字典树,但是不知道为什么一直RE(听学长说要动态开点 ...

  4. .ui/qrc文件自动生成.py文件

    前天PL让我们做一个从手机里手机一些数据导出到excel文件里的Tool. 让我们用python去写一个.但是我们都没有学过python..呵呵! 然后昨天看了一些文档.做ui时还需要把图片写入qrc ...

  5. callee与caller

    1.callee arguments.callee表示当前函数,使用于递归 function factorial(num){ if(num<=1){ return 1; }else{ retur ...

  6. ThinkPHP的输出和模型使用

    1.假设在v层需要输出一个变量怎么办呢?即如同在html当中输出php代码. 可以直接使用{$name}代替.花括号被称之为标识符.可以通过修改配置项('TMPL_L_DELIM'=>'< ...

  7. udhcpc命令

    要使用网络通讯,所以不可避免的要用到dhcp.理想的网络通讯方式是下面3种都要支持: 1,接入已有网络.这便要求可以作为dhcp客户端. 2,作为DHCP服务器,动态分配IP. 简单说下前2种情况. ...

  8. dev_alloc_skb(len+16) skb_reserve(skb,2) skb_put(skb,len)

    /** *      dev_alloc_skb - allocate an skbuff for receiving *      @length: length to allocate * *   ...

  9. Machine Learning系列--深入理解拉格朗日乘子法(Lagrange Multiplier) 和KKT条件

    在求取有约束条件的优化问题时,拉格朗日乘子法(Lagrange Multiplier) 和KKT条件是非常重要的两个求取方法,对于等式约束的优化问题,可以应用拉格朗日乘子法去求取最优值:如果含有不等式 ...

  10. nfs服务器配置

    安装 nfs-utils,该软件包提供了 NFS 工具: # yum install nfs-utils 配置启动脚本,使得共享在系统每次启动时都有效: # chkconfig --add rpcbi ...