首页—耀世平台注册-登录测速
首页—耀世平台注册-登录测速
新闻详情
 
当前位置
前端红宝书《JavaScript高级程序设计》核心知识总结
作者:an888    发布于:2026-01-30 11:17    文字:【】【】【

  耀世娱乐注册?此文是对《JavaScript 高级程序设计》一书难点的总结,也是笔者在看了 3 遍之后的一些梳理和感想,希望能借此巩固js的基础和对一些核心概念有更深入的了解。

  ② 十六进制字面量的前两位必须是0x,后根任何十六进制数字(0-9及A-F)

  ③ 在进行算术计算时,所有以八进制和十六进制表示的数值最终将被转换成十进制数值

  浮点数值的最高精度是17位小数,但在进行算术计算时精度远远不如整数。例如 0.1 + 0.2 === 0. (大致这个意思,具体多少个零请实际计算) 所以永远不要测试某个特定的浮点数值。

  ③ NaN 表示非数值。在 ECMAScript 中,任何数值除以非数值会返回 NaN,因此不会影响其他代码的执行。

  ④ isNaN() 用来确定传入的参数是否为非数值。会对参数进行转化,不能被转化为数值的则返回true。

  parseFloat 主要用于解析有效的浮点数字,始终会忽略前导的零,可识别所有的浮点数格式,但是十六进制格式的字符串始终会被转换成零。

  2. switch 语句在比较值时使用的是全等操作符,所以不会发生类型转换

  ① 所有的参数都是按值传递的。在向参数传递引用类型的值时,会把这个值在内存中的地址复制给一个局部变量,因此这个局部变量的变化会反应在函数外部

  ① js最常用的垃圾收集机制为“标记清除”,另一种不常用的是“引用计数”。

  ② 原理:找出不再继续使用的变量,然后释放其内存空间。垃圾收集器会在固定的时间间隔周期性的执行这一操作。

  //检测数值ES5方法Array.isArray(value)//检测值是否为数组//转换方法toString()将数组转化为以逗号分隔的字符串valueOf()返回的还是数组//栈方法push()可以接收任意数量的参数,把他们逐个添加到数组的末尾,返回修改后数组的长度pop()从数组末尾移除最后一项,返回移除的项//队列方法shift()移除数组的第一项并返回该项unshift()向数组前端添加任意个项并返回新数组的长度//排序sort(compare)compare函数接收两个参数,如果返回负数,则第一个参数位于第二个参数前面;如果返回零,则两个参数相等;如果返回正数,第一个参数位于第二个参数后面//降序,升序相反(a,b)=(b-a)//操作方法concat(数组一个或多个元素)//合并数组,返回新数组slice(起始位置,[结束位置])//切分数组,返回新数组,新数组不包含结束位置的项splice(起始位置,删除的个数,[插入的元素])//删除插入替换数组,返回删除的元素组成的数组,会修改原数组//位置方法indexOf(查找的项,[查找起点位置])//使用全等操作符,严格相等lastIndexOf()//迭代方法,都接收两个参数,一个是要在每一项上运行的函数,一个是作用域(可选)1.every对数组中每一项运行给定函数,如果函数对每一项都返回true,则返回trueevery(fn(value,index,array){return...},[this])2.some对数组中每一项运行给定函数,如果函数对任一项都返回true,则返回true3.filter对数组中每一项运行给定函数,返回该函数会返回true的项组成的数组4.forEach对数组每一项运行给定函数,无返回值5.map对数组每一项运行给定函数,返回每次函数调用返回结果组成的数组//归并方法reduce和reduceRight(和前者遍历的方向相反),构建一个最终返回的值reduce(fn(prev,cur,index,array){return...},initValue)1.fn返回的值会作为第一个参数传递给下一项tValue做为归并基础的初始值

  ②Date.now() 返回调用这个方法的日期时间的毫秒数,使用 +new Date()也可以得到相同的效果

  ① 由于 RegExp 构造函数的模式参数是字符串,所以在某些情况下要进行双重转义,对于\n双重转义为\\n

  ② 使用正则字面量时会共享一个 RegExp 实例,而正则构造函数会为每次调用创建一个新的 regExp 实例

  .exec(text) text 为要应用模式的字符串,返回包含第一个匹配项信息的数组。返回值分析: 返回值是数组的实例,但包含两个额外的属性:index(表示匹配项在字符串中的位置),input 表示应用正则表达式的字符串

  4. test(text) 接收一个字符串参数,在模式与该参数匹配是返回 true

  ① 函数内部属性 arguments对象有一个名叫callee的属性,该属性是一个指针,指向拥有这个arguments对象的函数 arguments.callee(arg) //调用函数自身,在严格模式下运行时会导致错误

  ② 函数属性 length 表示函数希望接收的命名参数的个数 prototype 保存所有实例方法

  apply()//接收两个参数,一个是作用域,另一个是参数数组call()//第一个参数是作用域,剩下的参数是函数需要接收的参数,需要一一列出bind()//该方法会创建一个函数的实例,其this值会被绑定到传给bind()函数的值IE9+支持valueOf()/toString()//返回函数的代码

  slice(start, end) / substring(start, end)

  // 返回指定字符在字符串中的索引,第二个参数为从指定位置开始搜索,可选

  // 该方法会创建一个字符串的副本,删除前置与后缀的所有空格,返回结果

  //本质上与RegExp的exec()方法相同,只接受一个参数,即正则表达式或RegExp对象

  //第一个参数为想要被替换的字符串或正则表达式,第二个参数为要替换的字符串或一个函数

  * 如果第二个参数是字符串,可以使用一些特殊的字符序列,将正则表达式操作得到的值插入到结果字符串中。

  正则表达式中定义了多个捕获组的情况下,传递的参数依次是模式的匹配项,第一个捕获组的匹配项,第二个捕获组的匹配项...,最后两个参数和上者相同

  ]/g, (match, pos, originalText) = {

  2. 构造函数---定义函数,通过new操作符创建对象(任何函数通过new操作符调用都可以看作构造函数)

  ( 3)我们可以通过对象实例访问保存在原型中的值,但却不能通过对象实例重写原型中的值,如果该实例有与原型相同的属性名,则会屏蔽原型中的属性;

  ( 6)Object.keys(obj) // 返回一个包含所有可枚举属性的字符串数组(实例属性);

  ( 9)重写原型对象会切断现有原型与之前存在的对象实例之间的联系,他们引用的任然是最初的原型;

  5. 动态原型模式(通过检查某个应该存在的方法是否存在,来决定需要初始化原型

  在全局函数中,this等于window,而当函数被当作某个对象的方法调用时,this等于那个对象。不过,匿名函数的执行环境具有全局性,因此其this对象通常指向window

  returnactualLeft}// 注:这些偏移量都是只读的,每次访问都要重新计算,因此最好将其保存到局部变量里,以提高性能

  ①.客户区坐标位置clientX/clientY //表示事件发生时鼠标指针在视口中的水平和垂直位置

  ②.页面坐标位置 pageX/pageY //表示事件在页面中发生的位置

  // 对于mousedown和mouseup,其event中存在一个button属性,值为0表示主鼠标按钮,1表示中间鼠标按钮,2表示次鼠标按钮

  2.DOMContentLoaded事件(在形成完整dom树之后就触发,不理会图像,js文件,css文件等资源是否下载完成)

  3.hashchange事件(在URL的参数列表发生变化【即#号后面的所有字符串】时触发)

  如果在页面写在之前没有清理干净事件处理程序,那他们就会滞留在内存中,每次加载完页面再卸载时,内存中滞留的对象就会增加,因为事件处理程序占用的内存并没有被释放。

  【解决方案】再页面卸载之前,先通过 onunload 事件处理程序移除所有事件处理程序。但是使用 onunload 时页面不会被缓存 bfcache(即往返缓存)中。

  1. 选择文本 inputEl.select() [用于选择文本框中的所有文本,不接受参数,可以在任何时候调用];

  2. 选择事件(select) //ie9+ 用户选择了文本并释放鼠标时触发;

  三个参数:要执行的命令的名称,表示浏览器是否为当前命令提供用户界面的一个布尔值,执行命令必须的一个值(如果不需要值,则为null)

  ③ 表单与富文本 *** 要想将富文本中的值传递给表单,则可在表单内创建一个隐藏的表单字段,将富文本的值赋给该表单字段的值。

  // 发送真正的请求,接收一个参数,即作为请求主体要发送的数据,不发送数据时必须传递null,因为对于某些浏览器来说该参数是必须的xhr.send(null)

  // 在接收到响应之前还可以取消异步请求xhr.abort() // 在停止请求之后还应该进行解引用操作,防止内存堆积

  // 跨域资源共享CORS核心思想:使用自定义的http头部让浏览器和服务器进行沟通,从而决定请求是成功还是失败原理:1.请求头指定源:Origin: 2.如果服务器认为这个请求可以接受,就在Access-Control-Allow-Origin头部回发相同的源信息Access-Control-Allow-Origin:(如果是公共资源,可以回发“*”)3.如果没有这个头部,或者有这个头部但是源信息不匹配,浏览器就会驳回请求

  // 主流浏览器对cros的实现方式:在url中使用绝对路径,但有限制:不能设置自定义头部,不能发送和接收cookie,获取不到getAllResponseHeaders()的返回值

相关推荐
  • 2026年及未来5年中国在线广告行业市场调查研究及发展战略规划报告
  • 前端红宝书《JavaScript高级程序设计》核心知识总结
  • 精准配色与绿色工艺:这家广告加工厂以高一致性色彩引领行业
  • 色彩营销让品牌随“色”起舞
  • 公司logo标志设计
  • 八大新型消费模式
  • 市场营销管理
  • 营销策划_品牌设计_中国十大品牌设计机构_要点
  • 腾讯广告-助力企业实现营销目标
  • e广告投放盈利优化秘籍:解锁高效盈利的新媒体(知乎、小红书、B站等)策略!!!
  • 脚注信息
    友情链接: