0x03数据类型和变量
数据类型
Number
JS不区分整数和浮点数,统一用Number。
123; // 整数123
0.456; // 浮点数0.456
1.2345e3; // 科学计数法表示1.2345x1000,等同于1234.5
-99; // 负数
NaN; // NaN表示Not a Number,当无法计算结果时用NaN表示
Infinity; // Infinity表示无限大,当数值超过了JavaScript的Number所能表示的最大值时,就表示为Infinity
Number可以直接做四则运算,规则和数学一致。
字符串
字符串是python风格的。单引号括起来和双引号括起来均可。
布尔值
true和false。 包括逻辑运算符也与C风格的完全一致。&&、||、!
比较运算符
其他等同C语言。但是在比较是否相等时要好好说道说道。
JS有两种相等运算符,一种是==
,一种是===
。
==
会自动转换数据类型再进行比较,所以可能会得到奇奇怪怪的结果。
===
不会自动转换类型,如果类型不同,直接返回false.
这是个JS设计的缺陷,我们要始终用===进行比较。
运用相等运算符时有个例外。NaN这个特殊的Number值,竟然与NaN不相等。
判断是否是NaN只能用isNaN(NaN);这个函数。它会返回true指示这是个NaN。
最后我们要特别注意浮点数相等的比较。
(1/3) === (1-2/3)会返回false.因为浮点数在计算过程中会有误差。
要比较两个浮点数是否相等,只能计算它们之差的绝对值,看是否小于某个阈值:
Math.abs(1 / 3 - (1 - 2 / 3)) < 0.0000001; // true
null和undefined
null表示值为空,undefined表示值未定义。并没有什么卵用。undefined仅仅在判断函数参数是否传递的情况下有用。没传递自然是未定义了。
数组
js的数组和python的list类似,不要求元素类型相等。
以下是一个合法的js数组。
[1, 2, 3.14, 'Hello', null, true];
还可以用Array函数创建数组,但是可读性很差劲。
new Array(1, 2, 3); // 创建了数组[1, 2, 3]
对象
JS的对象类似于python的字典:
var person = {name: 'Bob',age: 20,tags: ['js', 'web', 'mobile'],city: 'Beijing',hasCar: true,zipcode: null
};
是键值对的无序集合。
JavaScript对象的键都是字符串类型(无需用引号包裹,自动就是字符串),值可以是任意数据类型。上述person对象一共定义了6个键值对,其中每个键又称为对象的属性。
要获取一个对象的属性,我们用对象变量.属性名的方式:
person.name; // 'Bob'
person.zipcode; // null
变量
命名规则同Java语言一样。
字母、数字、下划线、$符号组成,数字不打头。
申明一个变量用var语句。
在JavaScript中,使用等号=对变量进行赋值。可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量,但是要注意只能用var申明一次:
var a = 123; // a的值是整数123
a = 'ABC'; // a变为字符串
这种变量本身类型不固定的语言称之为动态语言,与之对应的是静态语言。
和静态语言相比,动态语言更灵活,就是这个原因。
要显示变量的内容,可以用console.log(x)
,打开Chrome的控制台就可以看到结果。
MAC-Chrome打开控制台:option+command+I(i)
使用console.log()代替alert()的好处是可以避免弹出烦人的对话框。但是其实效果都是差不多的。
strict模式
JS的设计缺陷:如果一个变量没有通过var申明就被使用,那么该变量就自动被申明为全局变量:
i = 10; // i现在是全局变量
怎么启动strict模式?
在JavaScript代码的第一行写上:
'use strict';
这是一个字符串,不支持strict模式的浏览器会把它当做一个字符串语句执行,支持strict模式的浏览器将开启strict模式运行JavaScript。
0x03数据类型和变量相关推荐
- JavaScript - 数据类型和变量
计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网页等各种各样的数据,不同的数据,需要定义不同的数 ...
- python数据类型变量_python的数据类型与变量
计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形. 音频.视频.网页等各种各样的数据,不同的数据,需要定义不同的 ...
- python的数据类型和变量
python的数据类型和变量 数据类型 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网页等各种 ...
- Java复习二 基本数据类型与变量和常量
Java基本数据类型 Java变量与常量 Java基本数据 整数类型 用来存储整数的数据类型,既可以是正整数,又可以是负整数和0,但是不可以为浮点数.整数常量在Java中有三种表现形式:十进制,八进制 ...
- group by rollup 变量名为空值_【Python学习笔记】07、数据类型和变量
在Python中,能够直接处理的数据类型有以下几种: 整数 Python可以处理任意大小的整数,包括负整数,例如:1,100,-8080,0,等等. 计算机由于使用二进制,所以,有时候用十六进制表示整 ...
- Scala基础教程(二):数据类型、变量
基础语法 关于Scala程序,这是非常要注意以下几点. · 区分大小写 - Scala是大小写敏感的,这意味着标识Hello 和 hello在Scala中会有不同的含义. · ...
- 嵌入式c语言为什么变量定义在前面,嵌入式C语言数据类型和变量详解
原标题:嵌入式C语言数据类型和变量详解 一般来讲,标准的C语言类型在嵌入式编译器中是合法的.但由于嵌入式控制器的受限环境.嵌入式c语言的变量和数据类型具有新的特征,这些特征体现在如下方面. 嵌入式C语 ...
- python的数据类型和变量的定义及使用
一.数据类型按数值非数值分类 1.python的数据类型可以分为 数字型 和 非数字型. 数字型 整型 (int) 浮点型(float) 布尔型(bool) 复数型 (complex)(主要用于科学计 ...
- python 声明变量类型_python基础学习03数据类型和变量
数据类型和变量 1. 数据类型 1.1 整数 Python中不限制整数正负及大小,例如:1,-1,100,-100等等.计算机常用十进制和十六进制表示数值,比如十六进制表示方法是用前缀0x加后缀0-9 ...
最新文章
- Intel GPU实现游戏与数据中心
- 使用.NET REACTOR制作软件许可证
- 9.Matlab中的repmat,clock,rand以及seed,state,twister参数
- CCD工业相机、镜头倍率及相关参数计算方法
- 人工智能不是单纯的经验和总结
- C语言 malloc动态申请内存,存放数组
- 【cocos2d-x从c++到js】06:Google的继承写法解析
- 在github上托管Maven存储库(包含源代码和javadoc)
- 【C语言】str类与men库函数的实现(如:strcpy,strcmp,strstr,strcat,memmove,memcpy)
- MySQL定义数据库对象之指定definer
- L1-022 奇偶分家 (10 分) — 团体程序设计天梯赛
- 为什么要用 enable_shared_from_this ?
- 【数字信号调制】基于matlab GUI 2ASK+2FSK+2PSK调制解调仿真【含Matlab源码 1504期】
- 南京大学计算机专业推免生,南大计算机系招收2014级研究生外校推免生复试名单...
- ncie全国计算机等级考试,国家信息化工程师认证考试(NCIE)
- 使用MindStudio进行MindX SDK财务票据OCR识别开发
- 马士兵_JAVA自学之路
- ElasticSearch 技术分析与实战 读后感
- css之如何清除浮动
- alter table新增字段操作究竟有何影响?(上篇)
热门文章
- 2015.8.23——张佳莉
- iOS 战斗机跑车效果
- Win10开始菜单卡死解决办法
- vxworks下的脚本script创建和使用(相当于windows下的autoexec.bat)
- mysql 中auto_mysql中的auto_increment
- mysql increment_mysql中auto_increment是干什么的?
- 基于ssm手机供应商管理系统
- ECCVW 2022 | 第二届城市规模点云语义理解挑战赛
- java awt canvas_java.awt 类 Canvas - Java 中文参考手册
- Mac设置命令行代理