今天主要介绍两个东西: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之基本概念(二)的更多相关文章

  1. JavaScript基本概念(二)

    JavaScript 基本概念(二) 操作符和语句 目录 操作符 一元操作符 位操作符 布尔操作符 乘性操作符 其他操作符 语句部分 说起操作符,回忆下上一篇文章末尾说的话. 操作符 一元操作符 ++ ...

  2. 转: JavaScript函数式编程(二)

    转: JavaScript函数式编程(二) 作者: Stark伟 上一篇文章里我们提到了纯函数的概念,所谓的纯函数就是,对于相同的输入,永远会得到相同的输出,而且没有任何可观察的副作用,也不依赖外部环 ...

  3. Javascript模块化编程(二):AMD规范

    Javascript模块化编程(二):AMD规范   作者: 阮一峰 原文地址:http://www.ruanyifeng.com/blog/2012/10/asynchronous_module_d ...

  4. Javascript基础回顾 之(二) 作用域

    本来是要继续由浅入深表达式系列最后一篇的,但是最近团队突然就忙起来了,从来没有过的忙!不过喜欢表达式的朋友请放心,已经在写了:) 在工作当中发现大家对Javascript的一些基本原理普遍存在这里或者 ...

  5. Javascript常用方法函数收集(二)

    Javascript常用方法函数收集(二) 31.判断是否Touch屏幕 function isTouchScreen(){ return (('ontouchstart' in window) || ...

  6. Javascript动画效果(二)

    Javascript动画效果(二) 在前面的博客中讲了简单的Javascript动画效果,这篇文章主要介绍我在改变之前代码时发现的一些问题及解决方法. 在前面的多物体宽度变化的例子中,我们给其增加代码 ...

  7. JavaScript之旅(二)

    JavaScript之旅(二) 二.进阶知识 js的正则表达式 异常处理 调试 变量提升 表单验证 JSON javascript:void(0) JavaScript 代码规范 二.进阶知识 1. ...

  8. 理解 JavaScript Scoping & Hoisting(二)

    理解 JavaScript Scoping & Hoisting(二) 转自:http://www.jb51.net/article/75090.htm 这篇文章主要介绍了理解 JavaScr ...

  9. JavaScript学习总结(二)

    JavaScript学习总结(二) ---- 对象 在JavaScript中,几乎用到的每个js都离不开它的对象.下面我们深入了解一下js对象. js中对象的分类跟之前我们学过的语言中函数的分类一样, ...

  10. javascript系列之DOM(二)

    原文:javascript系列之DOM(二) 原生DOM扩展 我们接着第一部分来说,上文提到了两种常规的DOM操作:创建文档片段和遍历元素节点.我们知道那些雨后春笋般的库,有很大一部分工作就是提供了一 ...

随机推荐

  1. 9043Markdown常用用法

    1.标题 1.1 方法一:==和--标记 =和-标记语法格式如下: 我是标题一 == 我是标题二 -- 组成: 1标题文字:我是标题一 2回车换行 3标记:== (为一级标题)--(为二级标题) 效果 ...

  2. 简易数据分析 11 | Web Scraper 抓取表格数据

    这是简易数据分析系列的第 11 篇文章. 今天我们讲讲如何抓取网页表格里的数据.首先我们分析一下,网页里的经典表格是怎么构成的. First Name 所在的行比较特殊,是一个表格的表头,表示信息分类 ...

  3. 如何使用 Skywalking Agent ?

    如何使用 Skywalking Agent ? 如果你还不知道 Skywalking agent 是什么,请点击这里查看 Probe 或者这里查看快速了解agent,由于我这边大部分都是 JAVA 服 ...

  4. 关于post和get的区别

    首先,get和post并没有本质上的区别,都只是 HTTP 协议中两种请求方式,用的都是同一个传输层协议,在传输上并没有什么不同.     1.get和post报文上的区别 GET 和 POST 只是 ...

  5. 12 redis搭建主从服务(ubuntu)

    什么是主从服务 一个master可以拥有多个slave,一个slave可以拥有多个slave,如此下去,形成了多级服务器集群架构 master用来写数据, slave用来读数据, 经统计:网站的读写比 ...

  6. JDBC工具类连接数据库,模仿登录

    ## 使用JDBC工具类的原因在使用JDBC连接数据库的时候,加载驱动.获取连接.释放资源等代码是重复的,所有为了提高代码的复用性,我们可以写一个工具类,将数据库驱动加载.获取连接.资源释放的代码封装 ...

  7. [python]创建文本文件,并读取

    代码如下: # coding=gbk import os fname = raw_input("Please input the file name: ") print if os ...

  8. 2019DX#10

    Solved Pro.ID Title Ratio(Accepted / Submitted)   1001 Minimum Spanning Trees 22.22%(2/9)   1002 Lin ...

  9. HDU - 4009 - Transfer water 朱刘算法 +建立虚拟节点

    HDU - 4009:http://acm.hdu.edu.cn/showproblem.php?pid=4009 题意: 有n户人家住在山上,现在每户人家(x,y,z)都要解决供水的问题,他可以自己 ...

  10. D-query

    SPOJ - DQUERY 题意 求区间内出现一共有几种数字. 上次写了一个主席树,这次用一下莫队,莫队是离线询问的一种操作,将询问分块,如果在同一个块内就按照右端点排序,如果不在同一个块内就按照块的 ...