JavaScript变量和数据类型

变量:

  1. 区分大小写

  2. 标识符的第一个字符必须是字母或_或$

  3. "use strict"启用严格模式

  4. 变量定义:

    1. 使用 var定义局部变量,如 var message;

    2. 不用var定义的变量为全局变量.

    3. 变量的赋值并不会给这个变量指定类型.如var message="hi"; message=10;是
      可以的.

    4. 可以一次定义多个不同类型的变量: var
      message="hi",found=false,age=20;中间用逗号隔开就行.

  5. 数据类型:

  6. 基本数据类型:Undefined Null Boolean Number String

  7. 复杂数据类型:Object

检测变量类型的typeof操作符: typeof(变量名)或typeof 常量 括号不是必须的

typeof的返回值:

  1. undefined 变量未被初始化

  2. boolean 变量是布尔

  3. string 字符串

  4. number 数值

  5. object 对象或null

  6. function 函数

Undefined类型:

未被初始化和未被定义的变量的值都是undefined.

var message; (message==undefined)

typeof age (age未被定义,但返回undefined)

Null类型:

只有一个值null,用来表示空对象

Boolean类型:

只有两个字面值:true和false.但所有类型的值都可以通过转型函数Boolean()转换为对应的Boolean值.

数据类型 true false
String 非空字符串 空字符串("")
Number 非零值(包括无穷大) 0和NaN
Object 任何对象 null
Undefined n/a undefined

Number类型:

8进制整数字面值以0开头.如 var num=070;

16进制整数字面值以0x开头,如 0xA

科学计数法: var num=2.4e10

注意不要测试某个特定的浮点数值(0.1+0.2==0.3 是false)

超出数的范围的数会被转换成 Infinity.通过isFinite()函数可以检测是否为Infinity.

NaN是一个特殊的数,在试图将一个不能转换为数值的量转换为数值时就会得到NaN.任何涉及NaN的操作(如NaN/10)都会返回NaN.而且,NaN与任何值都不相等,包括NaN本身.可以通过isNaN()函数检测是否能一个量能转换为数值.

数值转换:

有3个函数可以把非数值转换为数值:Number(),parseInt()和parseFloat().

Number()函数转换规则:

Boolean 0和1
null 0
undefined NaN
"123" 123
" 123 " 123
"0123" 123
"0 123" NaN
"123a" NaN
"0xf" 15

parseInt()函数转换规则:

"123ab" 123
"ab123" NaN
"12 23" 12
"010" 8
"0xA" 10

String类型:

单引号和双引号都可以用来表示字符串.

length属性获取长度:如text.length

字符串是不可变的.

例如 var lang="Java" ; lang=lang+"Script";

新的lang是产生一个新的lang和"Script"的字符串

将量转化为String的方法:

量.toString()可以将量转化为String.但null和undefined没有这个方法.

特别的,当量是数值时,可以使用一个基数作为参数来输出相应的进制.

如: var num=10; num.toString(16)转化为"a".

如果不知道是不是null或undefined,可以使用String(),它可以将null或undefined转化为"null"或"undefined".

除此之外,还可以用 量+"" 来转化为字符串,对null和undefined也有效.

Object类型:

Object是所有其它Object的基础.

每个Object都有以下几种属性和方法:

  1. constructor:保存着构建函数

  2. hasOwnProperty(propertyName):检查给定属性是否存在

  3. isPrototypeOf(object):检查给定对象是否是当前对象的原型

  4. toLocaleString()和toString: 返回字符串表示

  5. valueOf: 返回对象的字符串,数值或布尔值.通常与toString()结果相同.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,406评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,732评论 3 393
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,711评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,380评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,432评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,301评论 1 301
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,145评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,008评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,443评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,649评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,795评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,501评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,119评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,731评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,865评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,899评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,724评论 2 354