JavaScript基础语法

jQuery

<script src=”https://code.jquery.com/jquery-2.1.1.min.js”></script>
<script src=”main.js”></script>


jQuery确保了所有的HTML文件都在JavaScript执行之前加载完成

运行js文件

js test.js

使用node

js注释

单行注释://
多行注释:/*...*/

Html注释

<!--和--> 所包围

变量类型

使用var声明的变量,其作用域为该语句所在的函数内,且存在变量提升现象;
使用let声明的变量,其作用域为该语句所在的代码块内,不存在变量提升;
使用const声明的是常量,在后面出现的代码中不能再修改该常量的值。

Let currentTempC = 22; //degree Celsius
currenTempC = 22.5

Let声明变量,只能是使用一次

声明多个变量

Let targetTempC , room1 = “conference_room_a”, room2 = “lobby”

常量

const ROOM_TEMP_C = 21.5,MAX_TEMP_C=30;
NOTICe: 尽量使用常量,反正篡改数据

标识符命名

必须以字母、$、下划线(_)开头
必须是由字母、数字、$和下划线(_)组成
可以使用Unicode字符
不可以使用保留字

基本类型

数字、字符串、布尔、nullundefined、符号

对象

ArrayDateRegExpMapWeakMapSetWeakSet

Javascript识别四种类型数字字面量

数字

十进制、二进制、八进制、十六进制

Let count = 10;
Const blue=0x0000ff;
Const imask = 0o0022;
Const roomTemp=21.5;
Const c =3.0e6;
Const e =-1.6e-19;
Const inf = Infinity;
Const ninf = -Infinity;
Const nan = NaN;

即便count赋值为10,仍然为double型

字符串

  1. 字符串在javascript中表示Unicode文本。Unicode可以在任何语言中表示文本。
  2. Js中,单引号、双引号、或者重音符都可以表示字符串字面量。

特殊字符

'use strict';
let currentTemp = 19.5;
const message="THe current temperature is "+currentTemp+"\u00b0C";
const me2 = "\xc9p\xe9e is fun , but foil is more fun";
console.log(message+"\n");
console.log(me2+"\n");


🔥 ~/Desktop > node test.js
THe current temperature is 19.5°C

Épée is fun , but foil is more fun

模板字符串

${xxxxx} 在字符串中形成拼接 类似还有 ‘+’

数字用作字符串

Const result1 = 3+ ‘30’; // 330
Const result2 = 3*’30’; //90

布尔型

Let heating = true;
Let cooling = false;

符号

Symbol()构造方法可以用来创建符号。Symbol()函数会返回symbol类型的值,该类型具有静态属性和静态方法

代表一个唯一标志,符号一经创建就是独一无二的,类似于对象。

Const RED = Symbol();
Const ORANGE = Symbol(“The color of a sunset!”);
RED === ORANGE // false: 每个符号都是唯一的

NULL和undefined区别
NULL表示没有值,undefined表示未被赋值。变量被创建未赋值,默认被定义为undefined。推荐使用NULL

对象

对象语法:大括号{}
NOTICE:不能使用关键字new创建一个符号
DEMO:
const obj={}; //空对象

对象内容

  1. 使用属性

    obj.size; //undefined
    obj.color; //”yellow”
  2. 计算机成员访问符

    obj[“not and identifier”]=3;
    obj[“not and identifier”]; // 3
    obj[“color”]=’yellow’; //yellow
  3. Symbol()

    const SIZE = Symbol();
    obj[SIZE]=8;
    obj[SIZE];

    创建对象并初始化属性

在大括号内部,属性用逗号间隔,属性名和属性值用冒号隔开。

const sam1={
     name: ‘Sam’,
     age: 4,
} // 不同行声明

const sam2 = {name:’Sam’,age:4}; //同一行声明

const sam3 ={
  name: ‘Sam’,
  classificatiion: {
kingdom: ‘ADN’,
....................,},}; //属性值也可是对象

对象添加函数

sam3.speak=function(){return “Meow!”;};

删除对象

delete sam3.classification: //整个classification树被移除
delete sam3.speak; //

Number,String和Boolean对象

数字、字符串和布尔型都有对应的对象类型。一是存储特殊值,二是以函数的形式提供某些功能。

const s = “hello”;
s.toUpperCase();   //”Hello”

事实上,s是字符串类型,在调用方法或属性临时的创建一个string对象。一旦这个函数被调用了,该临时对象就会被删除。

数组

  1. 数组长度不固定,可以随时添加和删除元素u
  2. 数组中元素的类型是多样的,每个元素都可以是任意类型。
  3. 数组下标从0开始

表示方法

const a1=[1,2,3]; 
const a2=[1,’two’,3,NULL];
const a3=[
{name:”Ruby”,hardness:9},
{name:”aaaa”,hardness:91},
];
const a4=[
[1,2,3],
[3,4,5],
];

日期

创建当前时间日期

> const now= new Date();
undefined
> now;
2019-04-09T15:09:43.892Z

创建指定日期时间

> const halloween = new Date(2016,9,31,19,0);
undefined
> halloween;
2016-10-31T11:00:00.000Z

常用方法

正则表达式

JavaScript中正则表达式通过RegExp对象来表达

let regex = new RegExp("ab+c");
let regex = new RegExp(/^[a-zA-Z]+[0-9]*\W?_$/, "gi");
let regex = new RegExp("^[a-zA-Z]+[0-9]*\\W?_$", "gi");

映像和集合

ES6引进Map和set,以及它们的“弱”引用类型WeakMapWeakSet。映射也是一种对象,它将键和值关联映射在一起。集合类似于数组,但它不允许重复元素。
映射Map

var map = new Map(); //映射,不重复的键,以键值对的形式存在 
map.set("name","mapluanpeng"); //添加设置映射 
if(map.has("name")) //判断映射是否存在 
printf(map.get("name")); //读取映射 
map.delete("name"); //删除映射

集合Set

var set1 = new Set(["name1","name2","name3"]); //集合。不重复的元素集合,不存在键值对 
set1.add("name"); //添加集合 

if(set1.has("name")){ //检测集合是否存在指定元素 
set1.delete("name"); //删除集合元素 
set1.clear(); //清空集合元素 
console.log(set1.size); //集合大小 }

set1 = new Set(["name1","name2","name3"]); 
var set2 = new Set(["name1","name3","name5"]); //并集 
let union = new Set([...set1, ...set2]); //交集 
let intersect = new Set([...set1].filter( x => set2.has(x))); //差集 
let difference = new Set([...set1].filter(x => !set2.has(x)));

数据类型转换

字符串转数值

第一种使用Number对象的构造方法:

const numStr=”33.3”;
const num = Number(numStr);//如果子丰富传内容不符合数字格式,返回NaN

第二种方式使用内置函数parseInt和parseFloat
与Number不同,parseInt可以自己指定要转换成什么格式

> const a = parseInt("16 volts",10);
undefined
> const b = parseInt("3a",16);
undefined
> const c = parseFloat("15.5 kph");
undefined
> console.log(a);
16
undefined
> console.log(b);
58
undefined
> console.log(c);
15.5
undefined

转换成字符串

const n =33.5;
cosnt s =n.toString();

转换成布尔型

const n =0;
const b1=!!n;
const b2 = Boolean(n);

总结:

  1. js有6中基本类型,字符串、数字、布尔、null、undefined,以及符号。
  2. 所有数字都是双精度浮点型
  3. 数组是特殊对象类型
  4. 日期、映射、集合和正则表达式都是特殊类型的对象。

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!