javaScript入门 - 基础语法

操作环境: Mac GoogleChorme

 

简介:

轻量级脚本语言,也是一种嵌入式语言。使用领域主要有:浏览器的平台化,Node.js, 数据库操作,移动平台开发等。

编译测试代码,可打开Chorme浏览器Console控制台,Shift + Enter用于代码换行,Enter用于代码执行。比如:

 

基础:

语句以 ';' 结尾,以'//' 为单行注释, '/**/'为多行注释

// javaScript以;结尾, 可以使用多个,但不推荐没有意义
/*
1. 多行语句可以写在一行内,但不推荐
3. 声明局部变量使用: var
*/
var num = 123;;;

若变量定义后,未赋值的话,默认为'undefined', 即为未定义的

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

变量的类型没有限制,变量可以随时改变。若重复声明已经存在的变量,是无效的。

// 修改变量的类型, 这个与lua下的变量类似
var param = 10;
param = 'hello JavaScript';
console.log(param);                 // hello JavaScript

// 重复声明已存在的变量,无效; 在lua中会覆盖
var a = 1;
var a;
console.log(a);                     // 1    

标识符命名与其他语言类似,第一个字符非数字,可以为下划线。不可使用保留字。

/*
保留字相关:
arguments、break、case、catch、class、const、continue、debugger
default、delete、do、else、enum、eval、export、extends、false、finally
for、function、if、implements、import、in、instanceof、interface、let
new、null、package、private、protected、public、return、static、super
switch、this、throw、true、try、typeof、var、void、while、with、yield
*/

// 注意: JavaScript可以使用中文作为标识符
var 字符 = '使用中文,牛逼啊'
console.log(字符);

javaScript使用 { } ,将多个语句组合在一起,称为block(区块)。但是对于var来说,是不构成单独的作用域的。

// var 在block中不为单独的作用域
{
  var a = 1;
}
a // 1


// 因此for循环下使用var作为索引会有这样的问题:
for(var i = 0; i < 10; ++i) {
}
console.log(i);                         // 10, 为了避免这种问题,可使用let

JavaScript比较数据的相等,有两种: '==' 和 '==='。前者会对变量进行转换,后者不会。

var a = ('12' == 12);
console.log(a);                // true 

var  b = ('12' ===12);
console.log(b);                // false 

// 注意: switch语句使用的相等运算符是:===

 

数据类型

JavaScript内置数据类型有:

number: 整数和小数

string: 字符串

boolean: 布尔类型,true和false

undefined: 未定义的,一般用于函数传参时,判定参数是否存在

nulll:不存在的,用于判定对象是否存在

object: 对象,细分化有array,function

// 通过typeof可判定对象类型,比如:
typeof(10); typeof(10.9);             // "number"
typeof(true);                         // "boolean"
typeof('');                           // "string"
typeof(undefined);                    // "undefined"
typeof(null);                         // "object" 历史原因导致,为了兼容
typeof([]); typeof({});               // "object"  

function getResult() {}
typeof(getResult)                     // "function"

在if判定中,注意一些数据对象的转换, 主要是null, undefined, false,空字符,0,NaN,会默认转换为false

!null                    // true
!undefined               // true
!''                      // true
!""                     // true
!NaN                     // true
!0                       // true
!false                   // true
![]                      // false
!{}                      // false      

NaN表示非数字,一般出现在将字符转换为数字时出现,比如:

parseInt('x')             // NaN
5 - 'x'                       // NaN

// 它不等于任何值,甚至于自身
NaN === NaN          // false

// 它与任何数运算,得到的都是NaN
NaN + 5                   // NaN

 

...

 

posted @ 2020-06-11 23:20  Code~  阅读(215)  评论(0)    收藏  举报