数据类型

计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值。但是,计算机能处理的远不止数值,还可以处理文本、图形、音频、视频、网页等各种各样的数据,不同的数据,需要定义不同的数据类型。在JavaScript中定义了以下几种数据类型:

Number

JavaScript不区分整数和浮点数,统一用Number表示

字符串

字符串是以单引号'或双引号"括起来的任意文本,比如'abc'"xyz"等等。请注意,''""本身只是一种表示方式,不是字符串的一部分,因此,字符串'abc'只有abc这3个字符。

布尔值

布尔值和布尔代数的表示完全一致,一个布尔值只有truefalse两种值,要么是true,要么是false,可以直接用truefalse表示布尔值,也可以通过布尔运算计算出来:

true; // 这是一个true值
false; // 这是一个false值
2 > 1; // 这是一个true值
2 >= 3; // 这是一个false值

比较运算符

当我们对Number做比较时,可以通过比较运算符得到一个布尔值

第一种是==比较,它会自动转换数据类型再比较,很多时候,会得到非常诡异的结果;

第二种是===比较,它不会自动转换数据类型,如果数据类型不一致,返回false,如果一致,再比较。

由于JavaScript这个设计缺陷,不要使用==比较,始终坚持使用===比较。

null和undefined

null表示一个“空”的值,它和0以及空字符串''不同,0是一个数值,''表示长度为0的字符串,而null表示“空”。

在其他语言中,也有类似JavaScript的null的表示,例如Java也用null,Swift用nil,Python用None表示。但是,在JavaScript中,还有一个和null类似的undefined,它表示“未定义”。

JavaScript的设计者希望用null表示一个空的值,而undefined表示值未定义。事实证明,这并没有什么卵用,区分两者的意义不大。大多数情况下,我们都应该用nullundefined仅仅在判断函数参数是否传递的情况下有用

数组

数组是一组按顺序排列的集合,集合的每个值称为元素。JavaScript的数组可以包括任意数据类型

第一种是==比较,它会自动转换数据类型再比较,很多时候,会得到非常诡异的结果;

第二种是===比较,它不会自动转换数据类型,如果数据类型不一致,返回false,如果一致,再比较。

由于JavaScript这个设计缺陷,不要使用==比较,始终坚持使用===比较。

然而,出于代码的可读性考虑,强烈建议直接使用[]

数组的元素可以通过索引来访问。请注意,索引的起始值为0

var arr = [1, 2, 3.14, 'Hello', null, true];
arr[0]; // 返回索引为0的元素,即1
arr[5]; // 返回索引为5的元素,即true
arr[6]; // 索引超出了范围,返回undefined

第一种是==比较,它会自动转换数据类型再比较,很多时候,会得到非常诡异的结果;

第二种是===比较,它不会自动转换数据类型,如果数据类型不一致,返回false,如果一致,再比较。

由于JavaScript这个设计缺陷,不要使用==比较,始终坚持使用===比较。

对象

JavaScript的对象是一组由键-值组成的无序集合,例如:

var person = {name: 'Bob',age: 20,tags: ['js', 'web', 'mobile'],city: 'Beijing',hasCar: true,zipcode: null
};

JavaScript对象的键都是字符串类型,值可以是任意数据类型。上述person对象一共定义了6个键值对,其中每个键又称为对象的属性,例如,personname属性为'Bob'zipcode属性为null

要获取一个对象的属性,我们用对象变量.属性名的方式:

person.name; // 'Bob'
person.zipcode; // null

第一种是==比较,它会自动转换数据类型再比较,很多时候,会得到非常诡异的结果;

第二种是===比较,它不会自动转换数据类型,如果数据类型不一致,返回false,如果一致,再比较。

由于JavaScript这个设计缺陷,不要使用==比较,始终坚持使用===比较。

变量

变量的概念基本上和初中代数的方程变量是一致的,只是在计算机程序中,变量不仅可以是数字,还可以是任意数据类型。

变量在JavaScript中就是用一个变量名表示,变量名是大小写英文、数字、$_的组合,且不能用数字开头。变量名也不能是JavaScript的关键字,如ifwhile等。申明一个变量用var语句,比如:

var a; // 申明了变量a,此时a的值为undefined
var $b = 1; // 申明了变量$b,同时给$b赋值,此时$b的值为1
var s_007 = '007'; // s_007是一个字符串
var Answer = true; // Answer是一个布尔值true
var t = null; // t的值是null

第一种是==比较,它会自动转换数据类型再比较,很多时候,会得到非常诡异的结果;

第二种是===比较,它不会自动转换数据类型,如果数据类型不一致,返回false,如果一致,再比较。

由于JavaScript这个设计缺陷,不要使用==比较,始终坚持使用===比较。

strict模式

JavaScript在设计之初,为了方便初学者学习,并不强制要求用var申明变量。这个设计错误带来了严重的后果:如果一个变量没有通过var申明就被使用,那么该变量就自动被申明为全局变量:

i = 10; // i现在是全局变量

在同一个页面的不同的JavaScript文件中,如果都不用var申明,恰好都使用了变量i,将造成变量i互相影响,产生难以调试的错误结果。

第一种是==比较,它会自动转换数据类型再比较,很多时候,会得到非常诡异的结果;

第二种是===比较,它不会自动转换数据类型,如果数据类型不一致,返回false,如果一致,再比较。

由于JavaScript这个设计缺陷,不要使用==比较,始终坚持使用===比较。

不用var申明的变量会被视为全局变量,为了避免这一缺陷,所有的JavaScript代码都应该使用strict模式。我们在后面编写的JavaScript代码将全部采用strict模式。

第一种是==比较,它会自动转换数据类型再比较,很多时候,会得到非常诡异的结果;

第二种是===比较,它不会自动转换数据类型,如果数据类型不一致,返回false,如果一致,再比较。

由于JavaScript这个设计缺陷,不要使用==比较,始终坚持使用===比较。

js-数据类型和变量相关推荐

  1. js php 数据类型判断,【js基础】变量类型判断

    类型判断方法比较: 如果需要想详细了解,请看下文: 注:原封不动复制备份,防止删帖 在JavaScript中,有5种基本数据类型和1种复杂数据类型,基本数据类型有:Undefined, Null, B ...

  2. 前端基础(十一、JS 输出、变量、基本数据类型)

    十一.JS 输出.变量.基本数据类型 JS输出 JS变量 JS 标识符 JS 声明变量 基本数据类型 typeof JS的基本数据类型 JS输出 JS支持以下五种输出: 使用 console.log( ...

  3. js书写位置,语法,数据类型,变量,输出,输入,类型转换

    目录 JS的书写位置 输出 语法 变量 八大数据类型: 分类 number 类型 string(字符串) 其他类型 类型转换 强制转换 自动转换 用户输入 JS的书写位置 1.内嵌式 使用的是Scri ...

  4. html js定义一个变量的值,JavaScript的数据类型与变量的解析(附示例)

    本篇文章给大家带来的内容是关于JavaScript的数据类型与变量的解析(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 这篇文章,来聊聊 JS 中的数据类型与变量.这是在学 ...

  5. JavaScript - 数据类型和变量

    计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网页等各种各样的数据,不同的数据,需要定义不同的数 ...

  6. js 判断变量是否有值返回bool_基础 |判断 JS 中的变量类型竟然可以如此简单

    原标题:基础 |判断 JS 中的变量类型竟然可以如此简单 嗨 这里是IMWEB 一个想为更多的前端人 享知识 助发展 觅福利 有情怀有情调的公众号 欢迎关注转发 让更多的前端技友一起学习发展~ 正文 ...

  7. JS数据类型与分支结构

    数据类型:数字Number.字符串String.布尔值Boolean.空null.未定义undefined.数组Array.对象Object.函数Function 分支结构:选择.循环(类似java) ...

  8. 前端基础(一):js数据类型

    2019独角兽企业重金招聘Python工程师标准>>> 字数:1871 阅读时间:5分钟 引自MDN: 最新的 ECMAScript 标准定义了 7 种数据类型: 6 种原始类型: ...

  9. 正确判断js数据类型 总结记录

    正确判断js数据类型 总结记录 判断js中的数据类型有一下几种方法:typeof.instanceof. constructor. prototype. 三方库. js六大数据类型 number: 数 ...

  10. Javascript开发技巧(JS中的变量、运算符、分支结构、循环结构)

    一.Js简介和入门 继续跟进JS开发的相关教程. <!-- [使用JS的三种方式] 1.HTML标签中内嵌JS(不提倡使用): 示例:<button οnclick="javas ...

最新文章

  1. Roadsend PHP-开源的PHP代码编译器
  2. python爬虫,生成文件速度追不上已经爬取文件的生成速度。
  3. Pandas.DataFrame删除指定行和列(drop)
  4. 【数学建模】图论模型-Floyd算法(最优化)
  5. android com.squareup,android – 无法导入com.squareup.okhttp.OkHttpClient;
  6. python装饰器理解_如何理解Python装饰器?
  7. 把解压缩版的tomcat6注册成服务并设置自启动
  8. php怎么阻止页面跳转,php如何控制页面跳转
  9. 镜像光盘如何刻录到U盘
  10. 基于PHP物流网站信息管理系统
  11. MMC-HVDC仿真模型,pscad柔性直流输电仿真mmc仿真模型
  12. Excel将选中的筛选内容复制可见的筛选格中方法
  13. 电信校园网宽带创翼破解,路由器PPPOE拦截法
  14. 不借助 vue-cli 工具自行搭建 vue 项目
  15. 时序数据库TSDB逐日统计的Jave算法实现过程
  16. hdu_2670Girl Love Value(dp)
  17. 传记-《硅谷钢铁侠》书中的精髓:从埃隆·马斯克的精神世界和人格特质里,找寻成功的秘密。
  18. 短链接的生成之工具类的编写--三种方式(亲测可用)
  19. c语言程序 三角形问题,[求助]C语言问题(定义三角形结构)
  20. 基于JAVA和MySQL的办公自动化系统

热门文章

  1. Java获取程序或项目路径的常用方法
  2. python爬虫学习之使用BeautifulSoup库爬取开奖网站信息-模块化
  3. 多线程----简单的生产者和消费者
  4. 色板游戏(洛谷 1558)
  5. MySQL 主主同步配置和主从配置步骤
  6. android View.getWidth() 和View.getHeight()返回0
  7. 精选| 2019年6月R新包推荐(第31期)
  8. 高中数学40分怎么办_高中数学新教材都有哪些变化?
  9. 使用kubernetes 官网工具kubeadm部署kubernetes(使用阿里云镜像)
  10. [学习笔记] [数据分析] 01.Python入门