自己敲一遍搬到博客里方便复习~
由来
ECMA-262 是 JavaScript 标准的官方名称。
JavaScript 由 Brendan Eich 发明。它于 1995 年出现在 Netscape 中(该浏览器已停止更新),并于 1997 年被 ECMA(一个标准协会)采纳。
定义
JavaScript是一种轻量级的编程语言,是可插入HTML页面的编程代码。
作用
直接写入HTML输出流,对事件的反应,改变HTML内容,改变HTML样式。
在 HTML 页面中插入 JavaScript,使用 script 标签。
可位于 HTML 的 body 标签 或 head 标签部分中,或者同时存在于两个部分中。
脚本保存到外部文件 .js 中
//弹出警告框
<script>window.alert(5+5);</script>
//用id属性标识HTML元素,用innerHTML获取或插入元素内容。
<script>doucument.getElementById(“demo”).innerHTML = “…”;
</script>
//在文档已完成加载后执行 document.write,整个 HTML 页面将被覆盖。
<script>doucument.write();写在HTML文件</script>
//控制台输出
<script>console.log(c);</script>
=== 为绝对相等,即数据类型与值都必须相等。
+ 运算符用于把文本值或字符串变量加起来(连接起来),两个数字相加,返回数字相加的和,如果数字与字符串相加,返回字符串
字面量:不变量
字面量 | eg |
---|---|
Number | 123e5 |
String | ‘cc’ “cc” |
Array | [40,50] |
Object | {age:18,name:’zz’,} |
Function | function myfirst(a,b){return a*b;} |
变量:变量用于存储数据值 关键字var 定义变量
命名规则: 以字母 或 $ 或 _ 符号开头
重新声明变量,该变量的值不会丢失
JS拥有动态类型,相同的变量可用作不同的类型
声明变量,未赋值,值为undefined
number类型NaN判断是不是数据
通过将变量的值设置为 null 来清空变量。 person=null; delte a;
值赋给尚未声明的变量,该变量将被自动作为 window 的一个属性
声明新变量时,可以使用关键词 “new” 来声明其类型:
每个句子接分号;
大小写敏感
命名驼峰法的命名规则,如 lastName
JS是脚本语言,浏览器会在读取代码时,逐行地执行脚本代码。
null是一个只有一个值的特殊类型。表示一个空对象引用。
null 和 undefined 的值相等,但类型不等:
typeof undefined // undefined
typeof null // object
null === undefined // false
null == undefined // true
值类型(基本类型):字符串(String)、数字(Number)、布尔(Boolean)、对空(Null)、未定义(Undefined)、Symbol
引用数据类型:对象(Object)、数组(Array)、函数(Function)
数字的科学计数法:123e5 123e-5
布尔类型:true,false
数组: var cars = new Array();
cars[0] = ‘bmw’;
对象:花括号分隔。在括号内部,对象的属性以名称和值对的形式 (name : value) 来定义, var person = {name:’zz’,age:18};
对象属性有两种寻址方式: name=person.name; name=person[“name”];
JavaScript 对象是属性和方法的容器,JavaScript 对象是键值对的容器。
键值对写法: name : value
键值对在 JavaScript 对象通常称为 对象属性。
比较省事但让人不习惯
不用声明变量类型:
function myFunction(a, b) {
return a * b; //return;
}
函数表达式存储在变量后,变量也可作为一个函数使用:
var x = function (a, b) {return a * b};
var z = x(4, 3);
通过关键字 function 定义:
//eg1
var myFunction = new Function("a", "b", "return a * b");
var x = myFunction(4, 3);
//eg2
var myFunction = function (a, b) {return a * b};
var x = myFunction(4, 3);
1.函数提升
2.变量提升
//eg1
myFunction(5);
function myFunction(y) {
return y * y;
}
//eg2
a = 5;
var a;
箭头函数
(参数1, 参数2, …, 参数N) => { 函数声明 }
(参数1, 参数2, …, 参数N) => 表达式(单一)
// 相当于:(参数1, 参数2, …, 参数N) =>{ return 表达式; }
const value = (x,y) =>{return x * y;}
//() => {函数声明}无参
函数有个内置的 arguments 对象 全部参数当作这个数组对象
函数的调用:
闭包
闭包是一种保护私有变量的机制,在函数执行时形成私有的作用域,保护里面的私有变量不受外界干扰。使得函数拥有私有变量变成可能,计数器受匿名函数的作用域保护,只能通过 add 方法修改。直观的说就是形成一个不销毁的栈环境。
变量声明时如果不使用 var 关键字,那么它就是一个全局变量,即便它在函数内定义。
在 JavaScript 中,所有函数都能访问它们上一层的作用域。
JavaScript 支持嵌套函数。嵌套函数可以访问上一层的函数变量。
var add = (function ()
{
var counter = 0;
return function () {return counter += 1;}
})();//自调用
add();
add();
add();
const
声明一个只读的常量,一旦声明,常量的值就不能改变。
const 定义的变量并非常量,并非不可变,它定义了一个常量引用一个值。使用 const 定义的对象或者数组,其实是可变的。
使用var关键字声明的全局作用域变量属于window对象。
使用let关键字声明的全局作用域变量不属于window对象。
使用var关键字声明的变量在任何地方都可以修改。
(英语:Regular Expression,在代码中常简写为regex、regexp或RE)使用单个字符串来描述、匹配一系列符合某个句法规则的字符串搜索模式。
search()
replace()
我是一只努力飞的菜鸟,大家一起加油吧。
如有错误,请指出,大家一起进步哦!
2020/07/08