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操作:创建文档片段和遍历元素节点.我们知道那些雨后春笋般的库,有很大一部分工作就是提供了一 ...
随机推荐
- Springboot + Stopping service [Tomcat]+ Process finished with exit code 0
在Springboot 的版本为: <version>1.5.10.RELEASE</version> 原因:代码中有非法格式的结构,及代码写错啦,例如: <result ...
- SynchronousQueue队列程序的执行结果分析
public static void main(String[] args) throws Exception { /** * SynchronousQueue队列程序的执行结果分析 * Blocki ...
- Guava google缓存机制
易百教程java学习http://www.yiibai.com/v3.php?app=all
- 【2017cs231n】:课程笔记-第2讲:图像分类
[2017cs231n]:课程笔记-第2讲:图像分类 搜索微信公众号:'AI-ming3526'或者'计算机视觉这件小事' 获取更多算法.机器学习干货 csdn:https://blog.csdn.n ...
- 设计模式(C#)——02简单工厂模式
推荐阅读: 我的CSDN 我的博客园 QQ群:704621321 工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来.通俗来说,你只关心怎么用,不用关心怎么做 ...
- [Python] 将视频转成ASCII符号形式、生成GIF图片
一.简要说明 简述:本文主要展示将视频转成ASCII符号形式展示出来,带音频. 运行环境:Win10/Python3.5. 主要模块: PIL.numpy.shutil. [PIL]: 图像处理 [n ...
- Libs - 颜色生成网站
介绍几个免费常用的颜色生成网站: 如下 对比色邻近色配色方案 http://www.peise.net/tools/web/ 渐变色方案 https://webgradients.com/ 随机搭配5 ...
- String类中intern方法的原理分析
一,前言 昨天简单整理了JVM内存分配和String类常用方法,遇到了String中的intern()方法.本来想一并总结起来,但是intern方法还涉及到JDK版本的问题,内容也相对较多,所以今 ...
- HttpClient 三种 Http Basic Authentication 认证方式,你了解了吗?
Http Basic 简介 HTTP 提供一个用于权限控制和认证的通用框架.最常用的 HTTP 认证方案是 HTTP Basic authentication.Http Basic 认证是一种用来允许 ...
- 2019DX#5
Solved Pro.ID Title Ratio(Accepted / Submitted) 1001 fraction 辗转相除 4.17%(7/168) ok 1002 three arr ...