js基础概括总结1

闭包

闭包的优势
1.能够读取函数内部的变量
2.这些变量的值始终保持在内存中
适用场景javascript

做用域

做用域指的是有权访问的变量集合。
在 JavaScript 中有两种做用域类型:vue

  • 局部做用域
  • 全局做用域

JavaScript 拥有函数做用域:每一个函数建立一个新的做用域。
做用域决定了这些变量的可访问性(可见性)。
函数内部定义的变量从函数外部是不可访问的(不可见的)。java

局部JavaScript变量

在 JavaScript 函数中声明的变量,会成为函数的局部变量
局部变量的做用域是局部的:只能在函数内部访问它们。
实例正则表达式

// 此处的代码不能使用 carName 变量
function myFunction() {
    var carName = "porsche";
    // 此处的代码能使用 carName 变量
}

全局 JavaScript 变量

函数以外声明的变量,会成为全局变量
全局变量的做用域是全局的:网页的全部脚本和函数都可以访问它。
实例数组

var carName = " porsche";
// 此处的代码可以使用 carName 变量
function myFunction() {
    // 此处的代码也可以使用 carName 变量
}

javascript变量提高

变量提高:在 JavaScript 中,能够在使用变量以后对其进行声明。经过 var 声明的变量会提高到顶端.
用 let 或 const 声明的变量和常量不会被提高!
在不一样的做用域或块中,经过 let 从新声明变量是容许的
经过 const定义的变量与 let 变量相似,但不能从新赋值。
const 变量必须在声明时赋值。可是能够更改常量对象的属性,也能够更改常量数组的元素,浏览器

const PI = 3.14159265359;

如何修改对象的属性:defineProperty.
JSON.parse(JSON.stringify(aaa).replace(/CourseName/g,"title"))安全

建立一个空对象

var emptyObj1 = {};
var emptyObj2 = new Object();
var emptyObj2 = Object.create(Object.prototype);

this指针

JavaScript this 关键词指的是它所属的对象。
它拥有不一样的值,具体取决于它的使用位置:
在方法中,this 指的是全部者对象。
单独的状况下,this 指的是全局对象。
在函数中,this 指的是全局对象。
在函数中,严格模式下,this 是 undefined。
在事件中,this 指的是接收事件的元素。
像 call() 和 apply() 这样的方法能够将 this 引用到任何对象。服务器

call()和apply()

apply()和call()差很少,只不过apply()第二个参数必须传入的是一个数组,而call() 第二个参数能够是任意类型。改变了 this 指向,让新的对象能够执⾏该函数,并能接受参

filter()的做⽤也是⽣成⼀个新数组,在遍历数组的时候将返回值为
true 的元素放⼊新数组,能够利用这个函数删除一些不须要的元素。cookie

session和cookie的区别

cookie:数据存储在浏览器端;cookie有大小限制,以及浏览器在存cookie也有个数限制;cookie存储不太安全,别人能够经过拦截或本地文件获得你的cookie而后进行攻击。session

session:数据存储在服务器端;session没有大小限制;session存储较为安全,占用服务器的内存。

token生成过程,如何生成token

token的做用是①防止表单重复提交,当点击一次提交按钮后,再点击就没用了②用来做身份验证

字符串

indexOf() 方法返回字符串中指定文本首次出现的索引(位置)
slice() 提取字符串的某个部分并在新字符串中返回被提取的部分。
该方法设置两个参数:起始索引(开始位置),终止索引(结束位置)。

var str = "Apple, Banana, Mango";
var res = str.slice(7,13);

replace() 方法用另外一个值替换在字符串中指定的值
concat() 链接两个或多个字符串
trim() 方法删除字符串两端的空白符
split() 方法将字符串转换为数组

数组

indexOf() 方法在数组中搜索元素值并返回其位置

var colors=["yellow","red","blue","black"];
var a=colors.indexOf("yellow");

lastIndexOf() 与 Array.indexOf() 相似,可是从数组结尾开始搜索。

布尔值

JavaScript 提供一种布尔数据类型。它只接受值truefalse
全部不具备“真实”值的即为 False
布尔值为false:0(零)、-0 (负零)、""(空值)、undefined 、null 、NaN 。

constructor属性返回全部 JavaScript 变量的构造器函数。

"Bill".constructor                 // 返回 "function String()  { [native code] }"
(3.14).constructor                 // 返回 "function Number()  { [native code] }"
false.constructor                  // 返回 "function Boolean() { [native code] }"
[1,2,3,4].constructor              // 返回 "function Array()   { [native code] }"
{name:'Bill', age:62}.constructor  // 返回" function Object()  { [native code] }"
new Date().constructor             // 返回 "function Date()    { [native code] }"
function () {}.constructor         // 返回 "function Function(){ [native code] }"

能够经过检查 constructor 属性来肯定某个对象是否为数组(包含单词 "Array"):
例如:
function isArray(myArr){
return myArr.constructor.toString().indexOf("Array")
}

正则表达式

正则表达式是构成搜索模式(search pattern)的字符序列。当您搜索文本中的数据时,您可以使用搜索模式来描述您搜索的内容。
语法
/pattern(模式)/modifiers(修饰符);

调试

clipboard.png

clipboard.png

vue

https://www.jianshu.com/p/2d3...

相关文章
相关标签/搜索