`
liaofeng_xiao
  • 浏览: 127300 次
  • 性别: 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-学习笔记.pdf

    数组和对象是JavaScript中的复杂数据类型: - 数组:用于存储有序的数据集合,通过索引访问。 - 对象:用来存储键值对的集合,每个键值对称为对象的属性。 9. DOM操作 DOM操作是JavaScript中与页面元素进行交互的...

    个人Javascript学习笔记 精华版

    本资源为个人Javascript学习笔记的精华版,涵盖了Javascript的基础知识、事件处理、对象和系统函数、浏览器对象等方面的内容。下面是对每个知识点的详细说明: 1. 什么是JavaScript? JavaScript是一种脚本语言,...

    web学习笔记 —— javascript基础

    2. 数据类型:JavaScript是动态类型语言,数据类型包括字符串(String)、数字(Number)、布尔值(Boolean)、null、undefined、对象(Object)和Symbol(ES6新增)。 3. 运算符:JavaScript支持算术运算符(+,-...

    JavaScript学习笔记

    - 数据类型:JavaScript有七种数据类型,包括原始类型(如字符串、数字、布尔、null和undefined)和引用类型(对象和符号)。 - 字符串:了解字符串的拼接方法,如模板字符串和加号操作符。 - 数组:学习数组的...

    js 笔记 javascript 学习笔记

    1. 变量与数据类型:在JavaScript中,我们使用`var`、`let`或`const`声明变量。数据类型分为基本类型(如字符串、数字、布尔值、null、undefined)和引用类型(如对象、数组)。例如,`let name = "John"`声明了一个...

    javascript入门学习笔记

    1. 变量与数据类型:JavaScript支持六种基本数据类型(字符串、数字、布尔值、null、undefined和symbol)以及一种复杂数据类型(对象)。变量声明使用`var`、`let`或`const`关键字,它们在作用域和可变性上有所不同...

    各种编程学习笔记:Python, HTML, CSS, Javascript, Git, Linux, PHP.zip

    这篇压缩包文件“各种编程学习笔记:Python, HTML, CSS, Javascript, Git, Linux, PHP.zip”包含了多个关键编程语言和技术的学习资料,是初学者和进阶者宝贵的资源。接下来,我们将深入探讨这些主题,以便更好地理解...

    javascript学习笔记发放1

    本文将深入探讨JavaScript的基础知识,包括字符集、大小写敏感性、注释、标识符、直接量、保留字和关键字、数据类型以及使用数据类型时需要注意的事项。 1. **字符集**:JavaScript采用Unicode字符集编码,这是因为...

    JavaScript学习笔记,javascript基础知识,基础语法整理.pdf

    * 对象是JavaScript中的一种基本数据类型 * 对象是一种集合类型,包含多个键值对 * 对象可以使用点符号或括号符号来访问属性 * 对象可以使用构造函数来创建 四、 JavaScript 中的时间对象 * 时间对象是JavaScript...

    JavaScript学习笔记.pdf

    JavaScript 学习笔记 JavaScript 是互联网上流行的脚本语言,可以...7、JavaScript 数据类型: JavaScript 有多种数据类型,例如数字、字符串、数组、对象等,例如:var length = 8; // Number 通过数字字面量赋值。

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

    根据给定的【标题】"javascript权威指南 学习笔记之javascript数据类型"和【描述】,我们可以深入探讨JavaScript中的数据类型及其特点。 首先,JavaScript支持三种基本数据类型:数字(Number)、字符串(String)...

    JavaScript 入门 新手学习笔记

    1. **基础语法**:JS的基础包括变量(var、let、const)、数据类型(如字符串、数字、布尔值、null、undefined、对象、数组)、运算符(算术、比较、逻辑、赋值)以及流程控制(条件语句、循环语句)。 2. **函数**...

    javaScript学习笔记总结.docx

    JavaScript的核心是ECMAScript,它定义了语言的基本语法和数据类型。ECMAScript包括变量声明、数据类型(如Number、String、Boolean、Object、null、undefined)、控制结构(如if-else、for、while)、函数、对象和...

    javascript学习笔记整理知识点整理

    这份“javascript学习笔记整理知识点整理”是针对初学者的一份宝贵资料,涵盖了JavaScript的基础知识,旨在帮助新手快速入门并掌握这门语言的核心概念。 一、变量与数据类型 在JavaScript中,变量用于存储数据。...

Global site tag (gtag.js) - Google Analytics