JavaScript基本概念

博客内容整理来自:JavaScript高级程序设计第三版

区分大小写

ECMAScript中的一切(变量名,函数,操作符)都区分大小写;
例如:var test=1; var TEXT=2;
变量 test和TEXT完成是两个变量,他们的名字一样,但是本质不同,例如同名的两个人;
函数名不能使用typeof ,typeof是一个保留字;而typeof则是一个有效的函数名;

标识符

标识符也就是变量、函数,属性的名字;
标识符的规则:
第一个字符必须是:字母或者_或者 ()线 (美元符号)、数字;
标识符也可以使用ASCII或Unicode字母字符,但不是推荐这么做!
标识符一般采用驼峰命大小写格式;
例如:myName
每次有意义的单词首字母大写;

注释

JavaScript的注释方式有三种:
1.
//
2.
/* */
3.
/*
*
*
*/
第三种你也可以不写中间的*:
/*

*/

语句

ECMAScript语句使用;结尾,如果省略,则由解析器确定语句的结尾;虽然可以不写;结尾,但是我们不推荐省略;这样不利于代码的压缩和代码的性能;

多条语句可以组合放在一个代码块中;代码有{开始,}结束;

function (){
    var a = 1;
    console.log(a)
}

关键字和保留字

变量

ECMAScript的变量是松散类型的,
所谓的松散类型,就是可以保存任何类型的数据;
每个变量仅仅是用于保存值的占位符而已,定义变量要使用var;不使用var定义的变量是全局变量(也就是window对象);我们不推荐全局对象,这样会操作全局污染,不利于代码的维护;

var 后面跟变量名(也就是标识符);
只声明变量而没有初始化该变量,会保存一个特殊的值undefined;

var a;
console.log(a)//undefined

var b =1;
console.log(b);//1

变量只是一个保存值的占位置,也就是说,它不会保存数据的类型;

var a = "hi",
a = 1;
console.log(typeof(1));

初始化变量a的时候,值为字符串,而后面又重新赋值为number,(虽然这可以但是我们不推荐这样做);

局部变量和全局变量:
局部变量为在代码块中问声明的变量,它有自己的作用于,即为声明它所在的代码块,在声明它的代码块外获取变量,会报错;

function xyd(){
    var a = 1;
}
console.log(a)//Uncaught ReferenceError: a is not defined

全局变量:
没有使用var 声明的变量;或者在全局下声明:

var b =1;
function xyd(){
    b = 2;
}

这里变量b(var b =1 和 函数xyd()中的变量b)都为全局变量;

当允许函数xyd后,你会发现:

var b =1;
function xyd(){
    b = 2;
}
xyd();
console.log(b)//2

var b 为全局变量;
函数xyd中变量b没有使用var 声明,为全局变量;
所以运行函数xyd(),变量b被重新赋值;

一条语句可以声明多个变量,用逗号(,)隔开:

var a = 1, b = 2, c = 3;

数据类型

undefined
boolean
string
number
object
function
ES6引入了第七种数据类型:Symbol

typeof 操作符

由于ECMA变量是松散类型的,也就是说,变量只是一个保存数据的占位符,它不会保存数据的类型,当我们需要查看一个数据的类型时,就用到了typeof操作符;
返回以下的数据类型:
“String” 字符串
“number” 数值
“boolean” true/false 布尔值
“function” 函数
“undefined” 未定义
“object” 对象

函数在ECMAScript中式一个对象,但是函数有一些特殊属性,因此用typeof区分函数和其他对象是有必要的;

undefined

undefined代表未定义的意思,即声明了一个变量但是没有初始化该变量, 该变量的默认值就为undefined;

var a;
console.log(a);//undefined

如果你使用一个没有声明的变量,则会报错;

 console.log(a);//Uncaught ReferenceError: a is not defined

如果你在严格模式中,去使用个未声明的变量,则会报错;

如果使用 typeof 去返回数据类型,未声明的变量和未初始化的变量 都会返回一个undefined,

var a ;
console.log(typeof (a));
console.log(typeof (b));

变量a由于只是声明变量没有初始化变量,所有返回undefined,
而b没有声明变量,也返回了一个undefined,

## null类型 ##
null代表一个空对象,也就是我们typeof null 时会返回一个object;

console.log(typeof (null));

## undefined和null的区别 ##
实际上undefined的值时派生自null的值,ECMAscript-262规定对它们的相等性返回true,

console.log(null == undefined);//true

他们的语义是不同的,
null表示一个”空值“;
undefined表示未定义即不存在;
定义一个变量为空值是合理的,
var object.name = null;这里的object对象的属性为空值,而不是未定义。
.如果显示定义一个变量等于 undefined,这个任何情况下都是不合理的,引用一个未定义的变量,本身就是错误的。

摘自阮老师博客下的 RedNax 评论

## Boolean类型 ##
Boolean类型只有两个字面量,true和falsee;
返回的类型取决于原始数据的类型;
这里写图片描述

任何数据类型调用Boolean()函数都返回一个Boolean值;
if语句会自动调用Boolean函数,返回一个Boolean值;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值