js高级教程(笔记)

“use strict”;

严格模式
体现方方面面,如

不可删除已定义的变量
必须先定义后使用
无函数提升
函数的this指针问题(windows=>undefined)
自调用函数的this指针问题(windows=>undefined)
构造函数无法直接·使用,必须new
不得在某些{}里写函数声明
函数不得有同名参数
等等

可拆开看主要原因后,分以下类型:

  • 函数不得有同名参数(特殊校验)
  • 原有的windows属性被改为undefined
  • 取消函数和变量提升,{}判断的不合适

回调函数改变函数调用

bind(不运行,参数不是数组)apply(运行,参数是数组)apply(运行,参数不是数组)

闭包

可访问其他函数内部的值的函数,好处有俩,一个是延长变量的作用范围(时间/空间)与that=this相同,另一个好处是隐藏保护属性,防止被其他方式修改。

函数作用域

函数作用域可以将外部的属性赋值一份到内部,保护起来,(对象参数无意义)。
与闭包(演延长时间结合),可以储存一些数据的变化。
##高阶函数与递归。
高阶函数是说,函数调用或者返回函数(无法一次执行完成)。
递归就是调用函数是自己本身。必须有终止条件。
递归应用是拷贝。一次函数是浅拷贝。递归是深拷贝

正则表达式

正则表达式是一个对象,作用是匹配(验证),替换,提取(搜索)

  • var rule=new RegEsp(表达式)
  • var rule=表达式
    rule.test(参数)
特殊字符 
^以正则表达式开头
$以正则表达式结尾
[](只)可选一个
-a-z/A-Z/1-9
[^]取反

var let const

var有变量提升,无块级作用域,值可更改,存在变量死区
let有变量提升,有块级作用域,值可更改,for(let i),外部不可读取
var有变量提升,有块级作用域,值不更改,复杂数据类型的内容可改

var a=1,b=1,c=1;
function f1(){
console.log(a,b,c)//1,undefined,error
var b=2
let c=2
console.log(a,b,c)//1,2,2
}

 var arr = []
 var i = 0
 for (let j = 0; i < 3; i++, j++) {
     arr[i] = function () {
        console.log(i, j)
     }
 }
 arr[0]()//3 0
 arr[1]()//3 1

不定参数

ES6中新增了不定参数,虽然之前有arguments,但是arguments对象,在ES6的箭头函数中是不可用的,而不定参数是可以在箭头函数中使用的。

href拼接

下载

<a :href="'域名'+'/release/deployer'">下载</a>
欢迎您继续学习Javascript高级教程。我还将向你们展示<br>Javascript的许多神奇功能,使你能够制作真正对多媒体应用<br>程序。 <br>今天我们将学习一项很有用而且很有趣的内容:cookies - 这<br>是用来记录访问过你的网页的人的信息。利用Cookies你能记录<br>访问者的姓名,并且在该访问者再次访问你的站点时向他发出<br>热情的欢迎信息。你还可以利用cookie记忆用户端的特点 - 如<br>果访问者的所接入的网线的速度慢,cookie可以自动告诉你在<br>给其发送网页的时候只发送尽可能少的图片内容。<br><br>只要你在合理的范围内使用cookies(不要用它探询用户的个人<br>隐私),cookies还是相当实用得。所以我要向你们介绍cookies<br>的工作原理,但是在正式开始之前,我们先谈两个JavaScript<br>内容:有趣的字符串处理以及相关数组。>><br>由于cookies牵扯到向用户的硬盘写盘和读取信息,所以就涉及<br>一个保密性的问题.如果你需要大量什么cookies,你应该阅读<br>一下Marc Slayton写的cooikies揭密以及重新考察cookies.这<br>些文章将告诉你cookie的实质和作用范围以及其内在的局限性.<br>其最重要的局限性在于:不是每个人的浏览器都欢迎cookies.<br>即便是用户的浏览器欢迎cookies,但用户也有可能拒绝cookies<br>的访问(大部分人还是欢迎的)每个域名只分配20个cookies,<br>所以要节省着什么它们.Cookies不得大于4 KB,当然4,000字<br>节的容量是足够的了.<br><br>cookie路径和域 这是掌握cookie最后的一个障碍:缺省情况下cookie只能被在同一个Web服务器上同一个路径下设置了该cookie的网页读取.<br><br>对象和方法的识别 <br>最佳的方法是你先确定某一段代码具备什么功能,然后搞清楚<br>浏览器具备什么功能。 <br><br>对象给我们组织信息提供了一个很好的手段。首先我们看<br>看现实生活中的对象。比如说,一只猴子就是一个对象。它有<br>高度,宽度,毛发等等属性。所有的猴子都有相同的这些属性<br>类型,是属性的值的不同才使一只猴子与其它猴子区别开来。<br>猴子也有自己的方法,如玩儿play(),吃eat(),睡sleep()等。<br><br>对象很好理解还因为它能够保持有关词的“感觉”。例如<br>JavaScript中的聚焦方法focus(),很显然就是使什么东西成为<br>焦点。当聚焦方法作用到窗口对象时,它使该窗口弹到前面。<br>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值