`
liaofeng_xiao
  • 浏览: 126034 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

学习笔记:Javascript数据类型和值

阅读更多
    JS中有三种基本数据类型:数字、文本字符串和布尔值。除此之外还允许两种小数据类型:null和undefined【它们各自都只有一个值】。

    除了基本数据类型,JS还支持复合数据类型:对象。对象是值的集合,这里的值可以是基本数据类型,也可以是其他对象。在一般的对象中,值的集合是无序的,但是在数组对象中,值被保存为有序的集合--虽然从根本上来说,数组对象也是对象,只是数组对象拥有很多相对一般对象所独有的特性和行为。另外,函数作为另一种特殊的对象,它也拥有很多独特的行为。所以我们可以将Array和Function看做两种特殊的Object。

     另外,JS语言还自定义了一些专用对象,比如Date、RegExp和Error。它们不是新的数据类型,而是对象的新的类(class)。
  
  • 整数:JS中并不区分整数值和浮点型数值,所有的数字都由64位浮点值表示。整数有十进制、八进制和十六进制。八进制以0开头,十六进制以0x或0X开头。注意:不是所有的JS实现都支持八进制,如ECMAScript标准。
  • 浮点型:浮点数可以表示为[digits][.digits][(E|e)[(+|-)]digits]
  • 无穷大:Infinity和-Infinity,isFinite()用来检测一个数字是否是NaN、正无穷大或无穷大。非数字类型特殊值为NaN,它和任何数都不相等,即使是它自身。所以需要专门的函数来检测这个值:isNaN。
  •    JS定义了这些特殊的常量:Infinity,NaN,Number.MAX_VALUE,Number.MIN_VALUE(非常接近0的一个正数),Number.NaN,Number.POSITIVE_INFINITY,Number.NEGATIVE_INFINITY。程序中我们比较少直接使用Infinity,而是要指定是正为穷大还是负无穷大。

看一些例子:
	alert(isFinite(6));//true
	alert(isFinite(Infinity));//false
	alert(isFinite(Number.MIN_VALUE));//true
	alert(isFinite(Number.POSITIVE_INFINITY));//false
	alert(isNaN(Infinity));//false
	alert(isNaN(0/0));//true

  
    再来看看字符串:所谓字符串,就是由单引号或双引号括起来的Unicode字符序列。JS中没有char类型。我们要注意的是字符串常量中的转意序列。如:
  • \xXX:由两位十六进制数值XX指定的Latin-1字符
  • \uXXXX:由四位十六进制数值XX指定的Unicode字符
  • \0:空字符串

     看一个例子:在前台表单验证的时候我们经常需要检测输入的字符串长度,防止输入的长度大于数据库可以存储的最大长度。但是由于字符编码问题,我们不能简单的使用字符串的length属性进行判断所占字符个数,而是要判断字节数。比如一个汉字占了一个字符长度,但是却占用了两个字节的空间大小。在此我们可以通过一个函数计算字符串所占的字节数:
function getBytes(str)
{
	if(!str){return 0;}
        var count = 0;
	for (var i = 0; i < str.length; i++)
	{
	  var c = str.charAt(i);
	  /^[\u0000-\u00ff]$/.test(c)?count++:count+=2;
    }
    return count;
}
alert(getBytes(''));//0
alert(getBytes('haha'));//4
alert(getBytes('haha中国'));//8


字符串的使用:
  • length属性:字符个数
  • charAt()方法:取当个字符操作
  • substring(start,end)方法:取子字符串,包括start不包括end
  • indexOf(arg):查找子字符串在原字符串中的位置,找不到返回-1
  • charCodeAt(index):返回字符编码,为0到65535。如果index为负数或者大于字符串的 长度,返回NaN
  • concat():连接,我们一般直接用“+”实现之
  • lastIndexOf(str[,start]):
  • match():用正则比大师执行模式匹配
  • replace():用正则表达式执行查找、替换操作。
  • search():检索字符串中与正则表达式匹配的字串
  • slice():返回字符串的一个片段或一个字串
  • split():
  • toLowerCase():
  • toUpperCase():

部分例子:
var str="welldone";
alert(str.charAt(0));//w
alert(str.substring(0,4));//well
alert(str.indexOf('ell'));//1
alert(str[0]);//部分JS实现支持的读取单个字符的方法,尽量使用charAt


类型转换:数值转换为特定进制的字符串:
Number.toString(base)
var n=17;
alert(n.toString(2));//10001
alert(n.toString(8));//21
alert(n.toString(16));//11


字符串转换为数字:
var product = "21"*"2",JS会自动将两个字符串转换为数字,得到的结果为Number类型的42。所以我们只要将一个数字字符串减去0就可以将其转换为一个数字:
var str="33"-0;

   也可以通过parseInt和parseFloat进行转换,并忽略或舍去非数字部分。如果转换失败则返回NaN。另外,parseInt还可以指定所输入字符串表示的数字的进制,如:
parseInt("11",2)指明“11”是二进制表示下的“11”,所以转换为十进制的整数后得到3。
    记住:parseInt(str,base)和number.toString(base)可以进行进制转换。

布尔类型:
    JS中的布尔值很容易进行转换,如果一个布尔值用在数值环境中,true就转换为数字1,false则转换为0.如果用在字符串中,true转换为“true”,false转换为“false”。空值和未定义的值都转换为false【包括空字符】,任何的非空对象、数组或函数都可以转换为true。
分享到:
评论
1 楼 heiwoshimaoya 2010-06-12  
good  写的好!喜爱原创! 支持

相关推荐

    javascript权威指南 学习笔记之javascript数据类型

    javascript数据类型&lt;/title&gt; &lt;/head&gt; &lt;body&gt; [removed] /** JavaScript中允许使用 三种基本数据类型----数字,文本字符和布尔值。其中数字包括符点数. 此外,它还支持两种小数据类型---...

    前端学习(三)——javaScript学习笔记(一)认识、数据类型、循环判断.xmind

    前端学习(三)——javaScript学习笔记(一)认识、数据类型、循环判断.xmind

    JavaScript学习笔记讲解

    1.4.1 基本数据类型和常量 4 1.4.2 变量: 4 1.4.3 运算符号 5 1.5 JS的各个语句 6 1.5.1 switch选择语句 6 1.5.2 While循环语句 7 1.5.3 do while 语句 7 1.5.4 for循环语句 8 1.6 JS中的系统函数(它们都属于GLOBAL...

    JavaScript数据类型学习笔记

    主要针对JavaScript数据类型整理的学习笔记,分享给大家,感兴趣的小伙伴们可以参考一下

    JavaScript数据类型学习笔记分享

    本文实例为大家讲解JavaScript数据类型的相关资料,供大家参考,具体内容如下 1.引用类型 引用类型的值是引用类型的一个实例,引用类型是一种数据结构,用于将数据和功能组织在一起,也常被叫做类。 对象时某个...

    Javascript经典学习笔记

    javascript经典学习笔记总结,介绍几本数据类型,Function对象原理,js中没有类的概念,类继承的多种方式的总结,很不错,欢迎下载。

    JavaScript 学习笔记之数据类型

    基本数据类型:undefined、null、string、Boolean、number 复杂数据类型:object object的属性以无序的名称和值对的形式 (name : value) 来定义 二、详解 1、undefined:undefined类型只有一个值:undefined,在使用...

    JavaScript-note:JavaScript - 学习笔记

    javascript 学习笔记 目录 01-javascript高级程序设计 02-JavaScript数据与结构 01数组 02栈 03队列 04链表 05字典 ...... 03-javaScript设计模式 04-es6语法 05-js数据类型 05-js数据类型 07-javaScript常用工具...

    javascript从入门到跑路—–小文的js学习笔记(3)———javascript中的数据类型

    ** javascript从入门到跑路—...数据类型: string 字符串 Number 数字 Boolean 布尔 Undefined 未定义 null 空 object 对象 string 字符串: 加引号,引起来的都是字符串(单双引号都可以); var a

    Javascript学习笔记-学JS的一手教程

    目 录 第一章 CSS样式表 1 1.1 什么是CSS 1 1.2 CSS的几种设置方式 1 1.2.1 内联样式表 1 ...2.4.1 基本数据类型和常量 8 2.4.2 变量: 8 2.4.3 运算符号 9 2.5 JS的各个语句 10 2.5.1 switch选择语句 10 2.5.2 Whi

    (web前端学习笔记)JavaScript基础

    JavaScript基础一、JS简介1、什么是JavaScript2、JavaScript的组成3、JavaScript...2.4、使用 console.log()三、JS语法1、JavaScript 变量2、JavaScript 标识符3、JavaScript 数据类型4、JavaScript 关键词四、JS函数1

    Javascript学习笔记1 数据类型

    在Javascript中只有五种简单类型,分别为null,undefined,boolean,String和Number.一种复杂类型:object。

    JavaScript基础语法资料 JavaScript代码 素材 笔记 作业资料.zip

    JavaScript基础语法资料 JavaScript代码 素材 笔记 作业资料,学习资料 01-编程语言.html 02-JS初体验.html 03-JS注释.html 04-JS输入输出语句.html 05-变量.html 06-变量案例.html 07-变量案例弹出用户名.html 08-...

    JAVASCRIPT学习笔记9-表格排序

    单个数据类型的排序比较简单,他这个例子的特别之处在于能兼容多种数据类型的排序。例子 很简单,但 排序的主方法,有三个形参,STableTd,iCol,sDataType分别为需要排序的表格ID, 需要排序的表格列号,所在列的...

    Javascript学习笔记一 之 数据类型

    在接触每一门编程语言之前,首先明白我们程序设计要处理的是数据,而数据又用数据类型将其区分。

Global site tag (gtag.js) - Google Analytics