前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JavaScript

JavaScript

作者头像
GhostCN_Z
发布2020-04-03 13:21:25
1.2K0
发布2020-04-03 13:21:25
举报
文章被收录于专栏:GhostCN_ZGhostCN_Z

JavaScript概述

ECMAScript和JavaScript的关系

ECMAScript和JavaScript的关系是,前者是后者的规格,后者是前者的一种实现。

完整的 JavaScript

  1. 核心(ECMAScript)
  2. 文档对象模型(DOM) Document object model (整合js,css,html)
  3. 浏览器对象模型(BOM) Broswer object model(整合js和浏览器)

JavaScript 是脚本语言

JavaScript是一种轻量级的编程语言。后来出现了node.js,可以作为后端语言来开发项目,js是一个既能做前端又能做后端的语言。

JavaScript 是可插入 HTML 页面的编程代码。

JavaScript 插入 HTML 页面后,可由所有的现代浏览器执行。

JavaScript引入方式

Script标签内写代码

在head标签里面可以写,在body标签里面也可以写

代码语言:javascript
复制
<script>

  // 在这里写你的JS代码

 //console.log('骑士计划!') #f12建打开浏览器的调试窗口,然后在console这个调试台就能看到这个内容了

  //alert('骑士计划!')  #这个是浏览器窗口一打开咱们这个文件,就弹出一个窗口

</script>

引入额外的JS文件

<script src="myscript.js"></script>

JavaScript语言规范

注释(注释是代码之母)

代码语言:javascript
复制
// 这是单行注释

 

/*

这是

多行注释

*/

结束符

JavaScript中的语句要以分号(;)为结束符。

JavaScript语言基础

变量的声明

变量名可以使用数字,字母,下划线,$组成,不能以数字开头。

声明变量使用var 变量名; let 变量名;的格式来进行声明。

注:

       let 变量名;    声明变量时,所声明的变量只在let命令所在的代码块内有效。且不可更改

       变量名不能用保留字

例:

代码语言:javascript
复制
var a=123

a

123

let b=123

b

123

var b=123

VM267:1 Uncaught SyntaxError: Identifier 'b' has already been declared #提示不能更改,已经被定义

var a=2   #但是a能被更改

a

2

JavaScript数据类型

数值(Number)

JavaScript不区分整数和浮点型,只有一种数字类型

代码语言:javascript
复制
var a=1.11

var b=2

var c=10e2

var d=25e-5

console.log(a,b,c,d)

1.11 2 1000 0.00025

console.log(typeof(a),typeof(b),typeof(c),typeof(d))   #类型

number number number number
字符串转数字(parseInt)
代码语言:javascript
复制
parseInt('123')

123

parseInt('12a3')

12

parseInt('12 3')

12

parseInt('a123')      #从上可知当转换时遇到非数字就停止转换,返回当前转换完的值

NaN

字符串(String)

代码语言:javascript
复制
var a='hello'

var b='world'

var c=a+b      #字符串拼接

c

"helloworld"
.常用方法:

方法

说明

.length

返回长度;不加括号时是属性

.trim()

移除两边的空白,得到一个新值,不更改原有的变量

.trimLeft()

移除左边的空白

.trimRight()

移除右边的空白

.charAt(n)

返回索引为n的字符,超过最大值返回空字符串

.concat(value)

拼接

.indexOf(substring,start)

查找某内容在字符串中的索引,start为初始查询位置

.slice(start, end)

切片

.toLowerCase()

全部变小写

.toUpperCase()

全部变大写

.split(delimiter, limit)

分割,limit为返回切割后的元素个数

实例:

代码语言:javascript
复制
var a=' hello world '

 

a.length

13

 

b=a.trim()

"hello world"

a

" hello world "

b

"hello world"

 

c=a.trimLeft()

"hello world "

c

"hello world "

 

a.charAt(2)

"e"

 

a.concat('ok')

" hello world ok"

 

a.indexOf('l',5)

10

 

a.slice(1,5)

"hell"

 

a.toUpperCase()

" HELLO WORLD "

a.toLowerCase()

" hello world "

 

a.split('l')

(4) [" he", "", "o wor", "d "]

布尔值(Boolean)

区别于Python,true和false都是小写。

var a = true;

var b = false;

""(空字符串)、0、null、undefined、NaN都是false。

null和undefined的区别

undefined表示当声明一个变量但未初始化时,该变量的默认值是undefined。还有就是函数无明确的返回值时,返回的也是undefined。

null表示变量的值是空,undefined则表示只声明了变量,但还没有赋值。

对象(Object)

对象只是带有属性和方法的特殊数据类型。

数组

       数组对象的作用是:使用单独的变量名来存储一系列的值。类似于Python中的列表。

代码语言:javascript
复制
var a=[123,'ABC'];

a

(2) [123, "ABC"]

a[1]

"ABC"

a[0]

123
常用方法

方法

说明

.length

数组的大小

.push(ele)

尾部追加元素

.pop()

删除尾部的元素

.unshift(ele)

头部插入元素

.shift()

头部移除元素

.slice(start, end)

切片

.reverse()

反转,在原数组上改的

.join(seq)

将数组元素连接成字符串,seq是连接符

.concat(val, ...)

连接数组,数个数组合并,得到一个新数组,原数组不变

.sort()

排序

.forEach()

将数组的每个元素传递给回调函数

.splice()

删除元素,并向数组添加新元素

.map()

返回一个数组元素调用函数处理后的值的新数组

例:

代码语言:javascript
复制
var a=[123,'123','1','2','3']

a

(5) [123, "123", "1", "2", "3"]

 

a.length

5

 

a.push('4')

6

a

(6) [123, "123", "1", "2", "3", "4"]

 

a.pop()

"4"

a

(5) [123, "123", "1", "2", "3"]

 

a.unshift('234')

6

a

(6) ["234", 123, "123", "1", "2", "3"]

 

a.shift()

"234"

a

(5) [123, "123", "1", "2", "3"]

 

a.slice(0,4)

(4) [123, "123", "1", "2"]

a

(5) [123, "123", "1", "2", "3"]

 

a.reverse()

(5) ["3", "2", "1", "123", 123]

a

(5) ["3", "2", "1", "123", 123]

 

a.join('+')

"3+2+1+123+123"

 

a.concat([222])

(6) ["3", "2", "1", "123", 123, 222]

a

(5) ["3", "2", "1", "123", 123]
关于sort()的注意

  如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,即是按照字符编码的顺序进行排序。

  如果想按照其他标准进行排序,就需要提供比较函数,也就是自己提供一个函数提供排序规则,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:

  若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。

  若 a 等于 b,则返回 0。

  若 a 大于 b,则返回一个大于 0 的值。

代码语言:javascript
复制
function sortNumber(a,b){

    return a - b

}

var arr1 = [11, 100, 22, 55, 33, 44]

arr1.sort(sortNumber)

内置对象和方法

JavaScript中的所有事物都是对象:字符串、数字、数组、日期,等等。在JavaScript中,对象是拥有属性和方法的数据。

类型

内置对象

介绍

数据类型

Number

数字对象

String

字符串对象

Boolean

布尔值对象

组合对象

Array

数组对象

Math

数学对象

Date

日期对象

高级对象

Object

自定义对象

Error

错误对象

Function

函数对象

RegExp

正则表达式对象

Global

全局对象

自定义对象

自定义对象时,key可以不用加引号,取值方式有两种:

  1. 1.      [‘key’]    这种方式时,key要加引号
  2. 2.      .key 通过点取值

JavaScript的对象(Object)本质上是键值对的集合(Hash结构),但是只能用字符串作为键。

代码语言:javascript
复制
var a = {"name": "Alex", "age": 18};

console.log(a.name);

console.log(a["age"]);

代码语言:javascript
复制
var a={

name:'alex',age:18

};

运算符

算数运算符

+ - * /

正常的加减乘除

++ --

自加 自减

注意:

       i++:先执行逻辑,再自加1

       ++i:先自加1,再执行逻辑

比较运算符

>=  <  <=  !=  !==

正常的大小于

==  ===

弱等于    强等于

  • >=  <  <=  !=  !==

正常的大小于 ==  === 弱等于    强等于

注意:

1 == “1”  // true  #弱等于,将1转换为字符串'1',在=号两个数据类型不同的时候,自动转为同一类型。

1 === "1"  // false #强等于,连同数据类型一起对比。

逻辑运算符

&&  ||  !  #and,or,非(取反)!null返回true

赋值运算符

= += -= *= /=  #n += 1其实就是n = n + 1

流程控制

if-else

代码语言:javascript
复制
if (a>5){

console.log('yes');

}else {

console.log('no');

}

yes

if-else if-else

代码语言:javascript
复制
var a = 10;

if (a > 5){

  console.log("a > 5");

}else if (a < 5) {

  console.log("a < 5");

}else {

  console.log("a = 5");

}

switch 切换

代码语言:javascript
复制
switch (a){

    case 5:console.log('5');break;

    case 10:console.log('10');

    case 15:console.log('15');

}

10

15

切记要加break,不然自动执行之后的代码,不管条件满足与否。

代码语言:javascript
复制
switch (a){

    case 5:console.log('5');break;

    case 10:console.log('10');break;

    case 15:console.log('15');

}

10

for

代码语言:javascript
复制
for (var i=0;i<10;i++) {

  console.log(i);

}

while

代码语言:javascript
复制
var i = 0;

while (i < 10) {

  console.log(i);

  i++;

}

三元运算

代码语言:javascript
复制
var a = 1;

var b = 2;

var c = a > b ? a : b

函数

创建函数

定义函数:

代码语言:javascript
复制
function sum(a, b){

  return a + b;

}

sum(1, 2);

函数自动执行:

代码语言:javascript
复制
(function(a, b){

  return a + b;

})(1, 2);

匿名函数:

var f = v => v;

函数的全局变量和局部变量

变量生存周期

      JavaScript变量的生命期从它们被声明的时间开始。

      局部变量会在函数运行以后被删除。

      全局变量会在页面关闭后被删除。

创建对象

创建对象时,命名的首字母要大写,实例化的时候使用new关键字进行实例化。

Date对象

方法1:不指定参数

var d1 = new Date(); //获取当前时间

console.log(d1.toLocaleString());  //当前时间日期的字符串表示

方法2:参数为日期字符串

var d2 = new Date("2004/3/20 11:12");

console.log(d2.toLocaleString());

var d3 = new Date("04/03/20 11:12");  #月/日/年(可以写成04/03/2020)

console.log(d3.toLocaleString());

方法3:参数为毫秒数,了解一下就行

var d3 = new Date(5000); 

console.log(d3.toLocaleString());

console.log(d3.toUTCString()); 

方法4:参数为年月日小时分钟秒毫秒

var d4 = new Date(2004,2,20,11,12,0,300);

console.log(d4.toLocaleString());  //毫秒并不直接显示

JSON对象

var str1 = '{"name": "chao", "age": 18}';

var obj1 = {"name": "chao", "age": 18};

JSON字符串转换成对象

var obj = JSON.parse(str1);

对象转换成JSON字符串

var str = JSON.stringify(obj1);

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-05-06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • JavaScript概述
    • ECMAScript和JavaScript的关系
      • 完整的 JavaScript
        • JavaScript引入方式
          • Script标签内写代码
          • 引入额外的JS文件
        • JavaScript语言规范
          • 注释(注释是代码之母)
          • 结束符
        • JavaScript语言基础
          • 变量的声明
        • JavaScript数据类型
          • 数值(Number)
          • 字符串(String)
          • 布尔值(Boolean)
          • 对象(Object)
          • 数组
        • 内置对象和方法
          • 自定义对象
        • 运算符
          • 算数运算符
          • 比较运算符
          • 逻辑运算符
          • 赋值运算符
        • 流程控制
          • if-else
          • if-else if-else
          • switch 切换
          • for
          • while
          • 三元运算
        • 函数
          • 创建函数
          • 函数的全局变量和局部变量
        • 创建对象
          • Date对象
            • JSON对象
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档