一、JavaScript变量

1.变量的定义

在定义变量时,统一使用关键字var,后跟变量名(即标识符,如果不知道什么是标识符,可以到这去查看),如下

  1. var message; //定义一个变量

注意:如果没有使用关键字var,就会成为全局变量了

2.变量的类型

  1. //定义多个变量
  2. var message, //没赋值,因此会保留一个特殊的值undefined
  3. num=22, //为number类型
  4. name='jerry', //为string类型
  5. flag=true; //为boolean类型

如果我们要查看一个变量时什么类型,可以使用typeof操作符进行查看变量类型

  1. var message;
  2. alert(typeof message); //undefined
  3. var str='Jerry';
  4. alert(typeof str); //string
  5. var num=123;
  6. alert(typeof str); //bumber

需要注意的是,使用尚未定义的变量是会报错哦

  1. alert(age); //产生错误
  2.  
  3. alert(typeof age) //却会返回undefined,这个时候我们不要问为什么,嘻嘻

二、JavaScript的数据类型

ECMAScript有5种简单数据类型(基本数据类型):Undefined、Null、Boolean、Number和String

还有一种复杂数据类型--Object

1.Undefined类型

Undefined类型只有一个值,即特殊的undefined。上面有讲过声明变量时,未初始化时,这个变量的值就是undefined

  1. var message;
  2. alert(typeof message); //undefined

2.Null类型

而Null类型是第二个只有一个值的数据类型,它也有一个特殊的值是null。

  1. alert(typeof null);//object
  2. alert(null==undefined)//true

实际上,undefined值是派生自null值的,因此 ECMAScript 把它们定义为相等的。尽管这两个值相等,但它们的含义不同。undefined 是声明了变量但未对其初始化时赋予该变量的值,null 则用于表示尚未存在的对象(typeof 运算符对于 null 值会返回 "Object"。)如果函数或方法要返回的是对象,那么找不到该对象时,返回的通常是 null。

3.Boolean类型

Boolean类型只有两个字面值:true和false。

我们要将一个值转换为对应的boolean值,可以调用函数Boolean(),它会返回一个Boolean值

  1. var name='jerry';
  2. var aa='';
  3. alert(Boolean(name)); //true
  4. alert(Boolean(aa)); //false

4.Number类型

  1. var num1=123; //
  2. var num2='123'; //字符串类型'123'
  3. var num3=parseInt('123'); //数字123
  4. var num4=parseInt('123asds'); //
  5. var num5=parseInt('asds421asdas'); //NaN
  6. var num6=parseInt(''); //NaN
  7. var num7=parseInt('0xf') //15(十六进制)

5.String类型

在JavaScript里,String类型作为一个基本数据类型,可以由双引号("")或者单引号('')表示。

  1. var name='jerry';
  2. var firstName="Tom";
  3. var age=11;
  4. alert(age+''); //字符串"11"
  5. alert(age.toString()) //字符串"11"
  6. alert(name+firstName); //"jerryTom"

6.Object类型

ECMAScript中的对象其实就是一组数据和功能的集合。对象可以通过执行new操作符后跟要创建的类型的名称来创建,也可以使用对象初始化器创建。

  1. var obj=new Object();
  2.  
  3. var obj1={
  4. name:'jerry',
  5. age:26
  6. };

Object的每个实例都具有以下属性和方法

①构造函数:Object();

②hasOwnProperty(PropertyName):检查给定的属性是否在当前的对象实例中,注:PropertyName必须以字符串给定

③isPrototypeOf(object):检查传递的对象,是否是另一个对象的原型。注:这里牵扯到原型和原型链,所以以后具体在讲,目前大家先知道有这么个方法

④propertyIsEnumerable(PropertyName):检查给定的属性是否能用for-in 语句来枚举。注:PropertyName必须以字符串给定

⑤toLocaleString():返回的字符串与执行环境的地区对应

⑥toString():返回字符串

⑦valueOf():返回对象的字符串、数值或布尔值表示

JavaScript 高级程序设计 02-变量、数据类型的更多相关文章

  1. 《JavaScript高级程序设计》 -- 变量、作用域和内存问题(二)

    1.基本类型与引用类型 基本类型:值保存在变量中 (Number.String.Boolean.Undefined.Null).在内存中占据固定大小空间,被保存在栈内存中 引用类型:值是保存在内存中的 ...

  2. JavaScript高级程序设计-(3) 变量、作用域和内存问题

    传递参数 ECMAScript所有函数参数都是按值传递的,即使对象在函数内部修改了参数的值,原始的引用任然不变,局部对象在函数执行完毕后被销毁

  3. 《JavaScript高级程序设计》学习笔记(3)——变量、作用域和内存问题

    欢迎关注本人的微信公众号"前端小填填",专注前端技术的基础和项目开发的学习. 本节内容对应<JavaScript高级程序设计>的第四章内容. 1.函数:通过函数可以封装 ...

  4. JavaScript高级程序设计学习(三)之变量、作用域和内存问题

    这次讲的主要是变量,作用域和内存问题. 任何一门编程语言,都涉及这三个. 变量,比如全局变量,局部变量等,作用域,也分全局作用域和方法作用域,内存问题,在java中就涉及到一个垃圾回收的问题,由于ja ...

  5. 读书笔记(02) - 可维护性 - JavaScript高级程序设计

    编写可维护性代码 可维护的代码遵循原则: 可理解性 (方便他人理解) 直观性 (一眼明了) 可适应性 (数据变化无需重写方法) 可扩展性 (应对未来需求扩展,要求较高) 可调试性 (错误处理方便定位) ...

  6. 读javascript高级程序设计00-目录

    javascript高级编程读书笔记系列,也是本砖头书.感觉js是一种很好上手的语言,不过本书细细读来发现了很多之前不了解的细节,受益良多.<br/>本笔记是为了方便日后查阅,仅作学习交流 ...

  7. 《JavaScript高级程序设计》读书笔记--前言

    起因 web编程过程使用javascript时感觉很吃力,效率很低.根本原因在于对javascript整个知识体系不熟,看来需要找些书脑补一下,同时欢迎众网友监督. 大神推荐书籍 看了博客大神们推荐的 ...

  8. 阅读摘录《javascript 高级程序设计》01

    前言: 因为工作需要,所以开始主攻前台JS方面的技术.在以前的工作中,使用过这门脚本语言.但是都是比较凌乱的,用到什么学什么,只是为了实现业务,而去使用. 不会考虑到代码优化,封装对象等.今次特意借了 ...

  9. 1 《JavaScript高级程序设计》学习笔记(1)

    欢迎关注本人的微信公众号"前端小填填",专注前端技术的基础和项目开发的学习. 首先,我将从<JavaScript高级程序设计>这本JavaScript学习者必看的经典教 ...

  10. javascript高级程序设计阅读笔记(一)

    javascript高级程序设计阅读笔记(一) 工作之余开发些web应用作为兴趣,在交互方面需要掌握javascript和css.HTML5等技术,因此读书笔记是必要的. javascript简介 J ...

随机推荐

  1. Uploadify帮助文档

    auto 当文件被添加到队列时,自动上传. (字符串) buttonImg 浏览按钮的背景图片路径. (字符串) buttonText 默认在按钮上显示的文本. (字符串) cancelImg 取消按 ...

  2. python(3)-深浅拷贝

    import copy copy.copy()    浅拷贝 copy.deepcopy()   深拷贝 >>> import copy >>> a1 = 123 ...

  3. CentOS(九)--与Linux文件和目录管理相关的一些重要命令①

       接上一篇文章,实际生产过程中的目录管理一定要注意用户是root 还是其他用户. 一.目录与路径 1.相对路径与绝对路径 因为我们在Linux系统中,常常要涉及到目录的切换,所以我们必须要了解 & ...

  4. 插入到Mysql数据库中的汉字乱码

    出现这个问题,大都是在Mysql安装的时候没有选择成UTF8,默认安装的话应该是latin编码 安装完成之后后期可以在配置文件中修改. 打开Mysq的安装位置,查看my.ini文件. 修改如下设置编码 ...

  5. 用bash命令得到Windows一个目录下的所有文件并且把结果输入到一个文件

    方式一: 只用如下一条语句就可以了: tree/f>index.txt 放入一个文件中命名为"****.bat" 双击就会在该目录下生成一个index.txt文件,在这个文件 ...

  6. GDB调试器简介

     Linux系统中包含了GNU 调试程序gdb,它是一个用来调试C和 C++ 程序的调试器.可以使程序开发者在程序运行时观察程序的内部结构和内存的使用情况. GDB提供了一下一些功能: (1)监视程序 ...

  7. poj 3164 最小树形图

    思路:就是裸的最小树形图~ #include<iostream> #include<cstdio> #include<cstring> #include<cm ...

  8. js函数大全

    js函数集·字符串(String) 1.声明 var myString = new String("Every good boy does fine."); var myStrin ...

  9. 让footer固定在页面(视口)底部(CSS-Sticky-Footer)

    让footer固定在页面(视口)底部(CSS-Sticky-Footer) 这是一个让网站footer固定在浏览器(页面内容小于浏览器高度时)/页面底部的技巧.由HTML和CSS实现,没有令人讨厌的h ...

  10. UITableView详解(转)

    首先.对UITableView进行讲解,下面有对它进行实际的应用 UITableView 显示大型内容的列表 单行,多列 垂直滚动,没有水平滚动 大量的数据集 性能强大,而且普遍存在于iPhone的应 ...