JavaScript 基本语法 -- 数据类型 & 变量
JavaScript都有哪些数据类型呢?
在JavaScript里面,数据类型分为两类:原始类型(primitive type)和对象类型(object type)
1. 原始类型(我的理解,不可分割的基本类型)
数字、字符串、布尔值、null、undefined
2. 对象类型(我的理解,由 键/值 对组成的一种类型)
普通对象、数组、函数、Date、RegExp、Error
PS:其中普通对象是指那些用户自定义的对象
(万物皆对象,类是对象类型的子类型,对象拥有属性和方法,但是null和undefined除外。)
1). Number
JavaScript 里面不区分整数和浮点数,统一用Number表示,e.g.
123; // 整数123
12.3; // 浮点数12.3
-12; // 负数-12
1- 'a'; // NaN (NaN表示 Not a Number,意味着无法计算当前结果)
1/0; // Infinity (Infinity表示无限大)
其中,需要注意的是 NaN这个特殊的Number与所有其他值都不相等,包括它自己
NaN == NaN; // false
2). String
字符串是以单引号(')或者双引号(")括起来的任意字符,单引号和双引号基本上没有区别,你喜欢。个人建议,JavaScript里面的字符串都统一使用单引号(原因是 少敲一个Shift键,捂脸~~~)
'this is a string'; // this is a string
3). Boolean
布尔值只有两种可能,true 和 false,通常是由比较运算表达式得到,e.g.
2>1; // trure
2>3; // false
4). null & undefined
JavaScript的设计者希望用null表示一个空的值,而undefined表示值未定义。事实证明,这并没有什么卵用,区分两者的意义不大。大多数情况下,我们都应该用null。
另外:null 也是一个特殊的对象,由 typeof(null) 可以得知
5). 对象(object)
JavaScript的对象是一组由键-值组成的无序集合,e.g:
var student = {
name: 'Michael',
age: 20,
sex: 'man'
};
6). 数组(Array)
数组是一组按顺序排列的集合,集合的每个值称为元素。JavaScript的数组可以包括任意数据类型。e.g.
[1, 2, 3, '4', false, {x: 1, y: 2}, [7, 8]];
这个数组包含了7个元素,其中类型有 数字,字符串,布尔值,对象,数组
7). 函数(funciton)
函数是可供其他程序调用的一个功能模块
function f() {
alert("Hello world!");
}
标识符和保留字
标识符:JavaScript 标识符必须以字母,或者下划线(_),或者美元符号($)开始,后面可以是任意可用字符
保留字:不能使用下面这些作为你的变量
break, case, catch, continue, debugger, default, delete, do,
else, false, finally, for, function, if, in, instanceof, new, null
return, switch, this, throw, true, try, typeof, var, void, while, with
如何声明变量呢?
使用关键字 var 声明变量。
调用声明但未初始化的变量返回undefined,调用未声明的变量会出现引用错误(ReferenceError)
var a = 10;
var b; console.log(a); //
console.log(b); // undefined
console.log(c); // ReferenceError
变量的作用域
一个变量的作用域(scope)是代码中定义这个变量的区域,有两种:
全局变量:在代码中任何地方都可见
局部变量:只在函数内部可见
在函数体内,局部变量优先级高于全局变量。e.g.
var scope = "global var";
function f(){
var scope = "local var";
console.log(scope);
} f(); // "local var"
console.log(scope); // "global var"
这里有一点要非常注意的:即使在函数内部,你也要使用 var 关键字来声明变量,否则它会变成全局变量。e.g.
var scope = "global var";
function f(){
scope = "local var"; // 这里忘记使用var关键字,因此这将会声明一个全局的变量,即使它在函数内执行
console.log(scope);
} f(); // "local var"
console.log(scope); // "local var"
有个规定:所有需要用到的变量都应该在函数体顶部声明,而不是在要用到的时候才声明
JavaScript 基本语法 -- 数据类型 & 变量的更多相关文章
- javascript基础语法备忘录-变量和数据类型
//javascript基础语法备忘录-变量和数据类型 // 定义变量使用var关键字 后面跟变量名,不要使用eval 和arguments为变量名 var message = "hi&qu ...
- javascript基本语法和变量(转)
转载来自 阮一峰老师的文章,地址为:http://javascript.ruanyifeng.com/grammar/basic.html#toc0 1.1语句 JavaScript 程序的执行单位是 ...
- C语言笔记 02_基本语法&数据类型&变量
基本语法 令牌 C 程序由各种令牌组成,令牌可以是关键字.标识符.常量.字符串值,或者是一个符号.例如,下面的 C 语句包括五个令牌: printf("Hello, World! \n&qu ...
- Java学习笔记之基础语法(数据类型)
8种基本数据类型 整型: byte[1字节] short[2字节] int[4字节] long[8字节] 1,四种整型之间的区别:申 ...
- 学习 JavaScript (三)核心概念:语法、变量、数据类型
JavaScript 的核心概念主要由语法.变量.数据类型.操作符.语句.函数组成,这篇文章主要讲解的是前面三个,后面三个下一篇文章再讲解. 01 语法 熟悉 JavaScript 历史的人应该都知道 ...
- Javascript用途,语法特点,难点,调试工具,引入方式,命名规范,变量声明及赋值,数据类型,运算符
JavaScript用来干什么 数据的验证 将动态的内容写入到网页当中(ajax) 对事件做出相应 读写html当中的内容 检测浏览器 创建cookies 模拟动画 语法特点 基于对象和事件驱动的松散 ...
- javascript基础语法——变量和标识符
× 目录 [1]定义 [2]命名规则 [3]声明[4]特性[5]作用域[6]声明提升[7]属性变量 前面的话 关于javascript,第一个比较重要的概念是变量,变量的工作机制是javascript ...
- JAVA学习(三):Java基础语法(变量、常量、数据类型、运算符与数据类型转换)
Java基础语法(变量.常量.数据类型.运算符与数据类型转换) 1.变量 Java中.用户能够通过指定数据类型和标识符来声明变量.其基本的语法为: DataType identifier; 或 Dat ...
- Javascript语法,变量类型,条件,循环语句,函数,面向对象
1.JavaScript代码革两种存在形式: <!-- 方式一 --> <script type='txt/javascript' src='/js/comment.js'>& ...
随机推荐
- 学习web前端技术的笔记,仅供自己查阅备忘,图片上传预览
<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8" ...
- [bzoj1587] [Usaco2009 Mar]Cleaning Up 打扫卫生
首先(看题解)可得...分成的任意一段中的不同颜色个数都<=根号n...不然的话直接分成n段会更优= = 然后就好做多了.. 先预处理出对于每头牛i,和它颜色相同的前一头和后一头牛的位置. 假设 ...
- 2017ecjtu-summer training #2 CodeForces 608B
B. Hamming Distance Sum time limit per test 2 seconds memory limit per test 256 megabytes input stan ...
- Dora.Interception, 为.NET Core度身打造的AOP框架[4]:演示几个典型应用
为了帮助大家更深刻地认识Dora.Interception,并更好地将它应用到你的项目中,我们通过如下几个简单的实例来演示几个常见的AOP应用在Dora.Interception下的实现.对于下面演示 ...
- NopCommerce用core重写ef
最近看了NopCommerce源码,用core学习着写了一个项目,修改的地方记录下.项目地址 NopCommerce框架出来好久了.18年的第一季度 懒加载出来后也会全部移动到.net core.那么 ...
- 关于vueThink框架打包发布的一些问题
刚开始发布自己的vueThink项目的时候,总是出现404错误,后来经过上网查找,发现是路径的问题,这方面的知识,网上很多,就不过多阐述了.我主要想说的是自己的项目发布的时候,admin账号登录的时候 ...
- 关于在vue-cli中使用微信自动登录和分享
(以下所有接口由后台提供) 一.微信自动登录 //定义事件 methods:{ //判断是否微信登陆 是不是微信浏览器 isWeiXin() { let ua = window.navigator.u ...
- 给织梦DEDECMS添加栏目图片与英文名显示
开始做微网站了,不同于传统手机网站,因为微信上的微网站是支持CSS3与HTML5的,好吧,各种要学习的还有很多很多阿~这么多新代码,叹! 本来想转战帝国CMS了,奈何这名字太不对味了,PHPCMS也懒 ...
- 本地如何使用phpstudy环境搭建多站点
http://jingyan.baidu.com/article/e52e36154227ef40c70c5147.html 平时在开发项目的时候, 多个项目同时开发的时候会遇到都得放到根目录才能正常 ...
- CUDA与OpenGL互操作
当处理较大数据量的时候,往往会用GPU进行运算,比如OpenGL或者CUDA.在实际的操作中,往往CUDA实现并行计算会比OpenGL更加方便,而OpenGL在进行后期渲染更具有优势.由于CUDA中的 ...