ECMAScript和JavaScript的关系是,前者是后者的规格,后者是前者的一种实现。
完整的 JavaScript核心(ECMAScript)文档对象模型(DOM) Document object model (整合js,css,html)浏览器对象模型(BOM) Broswer object model(整合js和浏览器)JavaScript 是脚本语言
JavaScript是一种轻量级的编程语言。后来出现了node.js,可以作为后端语言来开发项目,js是一个既能做前端又能做后端的语言。
JavaScript 是可插入 HTML 页面的编程代码。
JavaScript 插入 HTML 页面后,可由所有的现代浏览器执行。
JavaScript引入方式Script标签内写代码在head标签里面可以写,在body标签里面也可以写
<script> // 在这里写你的JS代码 //console.log('骑士计划!') #f12建打开浏览器的调试窗口,然后在console这个调试台就能看到这个内容了 //alert('骑士计划!') #这个是浏览器窗口一打开咱们这个文件,就弹出一个窗口 </script>引入额外的JS文件<script src="myscript.js"></script>
JavaScript语言规范注释(注释是代码之母)// 这是单行注释 /* 这是 多行注释 */结束符JavaScript中的语句要以分号(;)为结束符。
JavaScript语言基础变量的声明变量名可以使用数字,字母,下划线,$组成,不能以数字开头。
声明变量使用var 变量名; let 变量名;的格式来进行声明。
注:
let 变量名; 声明变量时,所声明的变量只在let命令所在的代码块内有效。且不可更改
变量名不能用保留字
例:
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 2JavaScript数据类型数值(Number)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)parseInt('123') 123 parseInt('12a3') 12 parseInt('12 3') 12 parseInt('a123') #从上可知当转换时遇到非数字就停止转换,返回当前转换完的值 NaN字符串(String)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为返回切割后的元素个数
实例:
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中的列表。
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()
返回一个数组元素调用函数处理后的值的新数组
例:
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 的值。
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. [‘key’] 这种方式时,key要加引号2. .key 通过点取值JavaScript的对象(Object)本质上是键值对的集合(Hash结构),但是只能用字符串作为键。
var a = {"name": "Alex", "age": 18}; console.log(a.name); console.log(a["age"]);或
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-elseif (a>5){ console.log('yes'); }else { console.log('no'); } yesif-else if-elsevar a = 10; if (a > 5){ console.log("a > 5"); }else if (a < 5) { console.log("a < 5"); }else { console.log("a = 5"); }switch 切换switch (a){ case 5:console.log('5');break; case 10:console.log('10'); case 15:console.log('15'); } 10 15切记要加break,不然自动执行之后的代码,不管条件满足与否。
switch (a){ case 5:console.log('5');break; case 10:console.log('10');break; case 15:console.log('15'); } 10forfor (var i=0;i<10;i++) { console.log(i); }whilevar i = 0; while (i < 10) { console.log(i); i++; }三元运算var a = 1; var b = 2; var c = a > b ? a : b函数创建函数定义函数:
function sum(a, b){ return a + b; } sum(1, 2);函数自动执行:
(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);
---来自腾讯云社区的---GhostCN_Z
微信扫一扫打赏
支付宝扫一扫打赏