JavaScript之基本概念(二)
今天主要介绍两个东西:JS标识符和数据类型
一 变量和常量
在介绍标识符之前有必要先了解一下JS中的变量和常量。
变量:程序执行期间可操作的临时存储数据的内存空间。
声明方式:
var:函数作用域,变量声明提前,可重复声明,后声明的覆盖前面的。
let:块级作用域,声明不会提前,不可重复声明。
const:声明常量,块级作用域,声明不会提前,不可重复声明,声明时必须赋值,不可重复赋值。
常量:程序运行期间不可改变。
二 JavaScript标识符
含义:JS中的标识符本质上是一个字符串。但字符串未必是标识符。
作用:标识符是用来给变量函数等命名的。
规则:
1 、只能由数字、字母、下划线以及$符号组成。
2 、不能以数字开头
3 、区分大小写
4、 使用有具体含义的单词,动名结合。
5 、遵循小驼峰命名法,即第一个单词首字母小写,其他的首字母大写。
6 、不能使用JS保留字和关键字。
JS关键字列表如下:
break |
case |
catch |
continue |
default |
delete |
do |
else |
finally |
for |
function |
if |
in |
instanceof |
new |
return |
switch |
this |
throw |
try |
typeof |
var |
void |
while |
with |
JS保留字列表如下:
abstract |
boolean |
byte |
char |
class |
const |
debugger |
double |
enum |
export |
extends |
final |
float |
goto |
implements |
import |
int |
interface |
long |
native |
package |
private |
protected |
public |
short |
static |
super |
synchronized |
throws |
transient |
volatile |
三 JavaScript数据类型
1 、分类
JS中的数据分为两大类:基本数据类型和复杂数据类型。
基本数据类型:
String(字符串):多个字符的有序序列,并用双引号或单引号引起来的。
Number(数字):JS在声明数字类型的变量时不区分浮点数和整数。
Boolean(布尔):只有两个值:true或者false。表示真或者假。
Undefined(未定义):表示变量已声明,但未赋值。
Null(空):变量已声明,但是其值为Null。
Symbol(唯一标识):ES6新增的。
复杂数据类型:
Object(对象):JS中一切皆可看做对象。
按照数据的存储方式也可分为两大类:原始值和引用值。具体其实和上面一样。
原始值:存储在栈(stack)中的简单数据段,也就是说,它们的值直接存储在变量访问的位置。
引用值:存储在堆(heap)中的对象,也就是说,存储在变量处的值是一个指针(point),指向存储对象的内存处。

2、 检测
JS中检测数据类型的方法是 typeof。
使用typeof检测数据会返回以下下7种结果,注意,它们都是以字符串的形式返回:
"string";
"number";
"boolean";
"undefined";
"object";
"function";
"symbol";
下面是一些简单的例子:
typeof "hello";//"string"
typeof 123;//"number"
typeof true;//"boolean"
typeof undefined;//"undefined"
function fn(){}
var obj = new Object();
var syb = new Symbol();
typeof fn;//"function"
typeof obj;//"object"
typeof syb;//"symbol"
11 typeof null;//"object",因为null最初被设计是用来当做空对象的占位符的
另外,有两个特别的数字:NaN(not a number不是一个数字)和infinity(无穷)。NaN需要用Number.isNaN()检测;如果参数不是数字则返回true,是数字则返回false;另一个方法Number.isFinite();如果参数是NaN或者infinity则返回false,否则返回true。
JavaScript之基本概念(二)的更多相关文章
- JavaScript基本概念(二)
JavaScript 基本概念(二) 操作符和语句 目录 操作符 一元操作符 位操作符 布尔操作符 乘性操作符 其他操作符 语句部分 说起操作符,回忆下上一篇文章末尾说的话. 操作符 一元操作符 ++ ...
- 转: JavaScript函数式编程(二)
转: JavaScript函数式编程(二) 作者: Stark伟 上一篇文章里我们提到了纯函数的概念,所谓的纯函数就是,对于相同的输入,永远会得到相同的输出,而且没有任何可观察的副作用,也不依赖外部环 ...
- Javascript模块化编程(二):AMD规范
Javascript模块化编程(二):AMD规范 作者: 阮一峰 原文地址:http://www.ruanyifeng.com/blog/2012/10/asynchronous_module_d ...
- Javascript基础回顾 之(二) 作用域
本来是要继续由浅入深表达式系列最后一篇的,但是最近团队突然就忙起来了,从来没有过的忙!不过喜欢表达式的朋友请放心,已经在写了:) 在工作当中发现大家对Javascript的一些基本原理普遍存在这里或者 ...
- Javascript常用方法函数收集(二)
Javascript常用方法函数收集(二) 31.判断是否Touch屏幕 function isTouchScreen(){ return (('ontouchstart' in window) || ...
- Javascript动画效果(二)
Javascript动画效果(二) 在前面的博客中讲了简单的Javascript动画效果,这篇文章主要介绍我在改变之前代码时发现的一些问题及解决方法. 在前面的多物体宽度变化的例子中,我们给其增加代码 ...
- JavaScript之旅(二)
JavaScript之旅(二) 二.进阶知识 js的正则表达式 异常处理 调试 变量提升 表单验证 JSON javascript:void(0) JavaScript 代码规范 二.进阶知识 1. ...
- 理解 JavaScript Scoping & Hoisting(二)
理解 JavaScript Scoping & Hoisting(二) 转自:http://www.jb51.net/article/75090.htm 这篇文章主要介绍了理解 JavaScr ...
- JavaScript学习总结(二)
JavaScript学习总结(二) ---- 对象 在JavaScript中,几乎用到的每个js都离不开它的对象.下面我们深入了解一下js对象. js中对象的分类跟之前我们学过的语言中函数的分类一样, ...
- javascript系列之DOM(二)
原文:javascript系列之DOM(二) 原生DOM扩展 我们接着第一部分来说,上文提到了两种常规的DOM操作:创建文档片段和遍历元素节点.我们知道那些雨后春笋般的库,有很大一部分工作就是提供了一 ...
随机推荐
- HTML5实时语音通话聊天,MP3压缩传输3KB每秒
目录 一.把玩方法 二.技术特性 (1)数据传输 (2)音频采集和编码 (3)音频实时接收和播放 三.应用场景 自从Recorder H5 GitHub开源库优化后,对边录边转码成小语音片段文件实时上 ...
- C++微信网页协议实现和应用
微信推送报警消息实现 目录 1 前言... 2 1.1 背景... 2 1.2 现有技术对比... 2 2 总体流程... 2 3 微信网页接口解析... ...
- 操作系统-IO管理疑难点
IO管理疑难点 一.分配设备 首先根据IO请求中的物理设备名查找系统设备表(SDT),从中找出该设备的DCT(设备控制表),再根据DCT中的设备状态字段,可知该设备是否正忙.若忙,便将请求IO进程的P ...
- Java集合框架之Vector浅析
Java集合框架之Vector浅析 一.Vector概述: 位于java.util包下的Vector是Java集合框架的重要一员,虽然没有ArrayList那么的常用,但是我们还要对其做相关学习: 1 ...
- Leetcode之回溯法专题-17. 电话号码的字母组合(Letter Combinations of a Phone Number)
[Leetcode]17. 电话号码的字母组合(Letter Combinations of a Phone Number) 题目描述: 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组 ...
- SpringBoot_@valid_参数校验
SpringBoot @valid 参数校验 空检查 @Null 验证对象是否为null @NotNull 验证对象是否不为null, 无法查检长度为0的字符串 @NotBlank 检查约束字符串是不 ...
- mysql类似oracle rownum写法
rownum是oracle才有的写法,rownum在oracle中可以用于取第一条数据,或者批量写数据时限定批量写的数量等 mysql取第一条数据写法 SELECT * FROM t order by ...
- SyntaxError: invalid syntax : if not 0 <= time_low < 1<<32L:
报错 Traceback (most recent call last): File "D:/PyCharm 5.0.3/WorkSpace/2.NLP/8.高阶实践/1.PipelineQ ...
- HTML(六)框架,颜色,脚本,字符实体,统一资源定位器
HTML 框架 HTML框架 通过使用框架,你可以在同一个浏览器窗口中显示不止一个页面 Iframe移除边框 使用iframe来显示目标链接页面 RUNOOB.COM HTML 颜色 rgb(255, ...
- P4570 [BJWC2011]元素 线性基 + 贪心
题意 给定n个物品,每个物品有一个编号和价值,问如何取使得拿到的物品价值总和最大,并且取得物品的编号的子集异或和不能为0. 思路 这是个贪心,我们先按照价值从大到小排序,然后贪心地取,如果当前要取的物 ...