5.25学习js笔记

1、JavaScript的基本数据类型有三种:

  • (1)数字型(Number型)[如123,45.6(整数型,浮点数型)]
  • (2)字符串型(String型)
  • [如str123,你好JavaScript  这些
  • 字符串是由Unicode字符、数字、标点符号等组成的序列,它是JavaScript用来表示文本的数据类型。程序中的字符串型数据是包含在单引号或双引号中的,由单引号定界的字符串中可以含有双引号,
  • 由双引号定界的字符串中也可以含有单引号。]
  • (3)布尔型(Boolean型)[只有两个“ture”,“false”]

2、JavaScript特殊数据类型

  • (1)空值(null型)
  • (2)未定义值(undefined型)
  • (3)转义字符

    此外,JavaScript中有一种特殊类型的数字常量NaN,即“非数字”。当在程序中由于某种原因发生计算错误后,将产生一个没有意义的数字,此时JavaScript返回的数字值就是NaN。

    null与undefined的区别是,null表示一个变量被赋予了一个空值,而undefined则表示该变量尚未被赋值。

   转义字符:以反斜杠“\”开头的不可显示的特殊字符通常称为转义字符。通过转义字符可以在字符串中添加不可显示的特殊字符,或者防止引号匹配混乱的问题。

JavaScript常用的转义字符
转义字符说明
\b 退格
\n 回车换行
\t Tab符号
\f 换页
\' 单引号
\" 双引号
\v 跳格(Tab,水平)
\r 换行
\\ 反斜杠
\OOO 八进制整数,范围为000~777
\xHH 十六进制整数,范围为00~FF
\uhhhh 十六进制编码的Unicode字符

   这张表列举了JavaScript常用的转义字符,一般只需要记忆\n、\'、\"  即可;

 

 3、在进行ife学习的过程中,在第二章“JavaScript数据类型及语言基础”中

  • 创建一个JavaScript文件,比如util.js
  • 实践判断各种数据类型的方法,并在util.js中实现以下方法// 判断arr是否为一个数组,返回一个bool值
function isArray(arr) {
    // your implement
}

// 判断fn是否为一个函数,返回一个bool值
function isFunction(fn) {
    // your implement
}

来判断一个变量的数据类型的方法,一般可以用typeof()方法;
var a="aaa";
var b=123;
var c= [1,2,3];
var d = new Date();
var e=function(){}
var f=null;

alert(typeof a)   ------------> string

alert(typeof b)   ------------> number

alert(typeof c)   ------------> object

alert(typeof d)   ------------> object

alert(typeof e)   ------------> function

alert(typeof f)   ------------> object;

 

其中typeof返回的类型都是字符串形式,需注意,例如:

alert(typeof a == "string") -------------> true

alert(typeof a == String) ---------------> false

另外typeof 可以判断function的类型;在判断除Object类型的对象时比较方便;

但想判断一个变量是否是数组的时候,可以用以下方法:

1.判断已知对象类型的方法: instanceof

alert(c instanceof Array) ---------------> true

alert(d instanceof Date) ---------------> true

alert(e instanceof Function) ------------> true

alert(e instanceof function) ------------> false

注意:instanceof 后面一定要是对象类型,并且大小写不能错,该方法适合一些条件选择或分支。

 如:a instanceof b?alert("true"):alert("false")  //注意b值是你想要判断的那种数据类型,不是一个字符串,比如Array(

注意:三元运算符:(?:)如名字表示的三元运算符需要三个操作数。语法是 条件 ? 结果1 : 结果2;. 这里你把条件写在问号(?)的前面后面跟着用冒号(:)分隔的结果1和结果2。满足条件时结果1否则结果2。)

2.根据对象的constructor判断: constructor

alert(c.constructor === Array) ----------> true

alert(d.constructor === Date) -----------> true

alert(e.constructor === Function) -------> true

在W3C定义中的定义:constructor 属性返回对创建此对象的数组函数的引用

就是返回对象相对应的构造函数,然后与给出的参数进行判断;从定义上来说跟instanceof不太一致,但效果都是一样的

3.通用但很繁琐的方法: prototype

alert(Object.prototype.toString.call(a) === ‘[object String]’) -------> true;

alert(Object.prototype.toString.call(b) === ‘[object Number]’) -------> true;

alert(Object.prototype.toString.call(c) === ‘[object Array]’) -------> true;

alert(Object.prototype.toString.call(d) === ‘[object Date]’) -------> true;

alert(Object.prototype.toString.call(e) === ‘[object Function]’) -------> true;

alert(Object.prototype.toString.call(f) === ‘[object Null]’) -------> true;

大小写不能写错,比较麻烦,但胜在通用。

通常情况下用typeof 判断就可以了,遇到预知Object类型的情况可以选用instanceof或constructor方法。

5.26看到新增的: 

isArray方法

Array.isArray方法用来判断一个值是否为数组。它可以弥补typeof运算符的不足。

var a = [1, 2, 3];

typeof a // "object"
Array.isArray(a) // true

上面代码表示,typeof运算符只能显示数组的类型是Object,而Array.isArray方法可以对数组返回true。

4、二维数组

一维数组,我们看成一组盒子,每个盒子只能放一个内容。

一维数组的表示: myarray[ ]

二维数组,我们看成一组盒子,不过每个盒子里还可以放多个盒子。

二维数组的表示: myarray[ ][ ]

注意: 二维数组的两个维度的索引值也是从0开始,两个维度的最后一个索引值为长度-1。 

var myarr=new Array();  //先声明一维 
for(var i=0;i<2;i++){   //一维长度为2
   myarr[i]=new Array();  //再声明二维 
   for(var j=0;j<3;j++){   //二维长度为3
   myarr[i][j]=i+j;   // 赋值,每个数组元素的值为i+j
   }
 }
 
posted @ 2016-05-25 17:28  spezz07  阅读(147)  评论(0编辑  收藏  举报