首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >我不知道的前端(一)

我不知道的前端(一)

作者头像
源心锁
发布2022-08-01 15:04:46
发布2022-08-01 15:04:46
8490
举报
文章被收录于专栏:前端魔法指南前端魔法指南

记录下我的学习笔记

原生JS如何获取父节点?

element.parentNode

sort()函数详细

sort函数蛮常用,但是我的开发日常也仅限于sort(),还是有必要详细陈列 sort可以接受一个函数

代码语言:javascript
复制
sort((a,b)=>{
    return a-b;
})

a\b是什么嘞?我尝试了一下

代码语言:javascript
复制
var array=[-1,1,3,4,6,10]; 
array.sort((a,b)=>{console.log(a,b);return a-b;});
代码语言:javascript
复制
1 -1
3 1
4 3
6 4
10 6

第一个参数,即a,为array[1,array.length-1],第二个到结尾 第二个参数,即b,为array[0,array.length-2],第一个到倒数第二个 a-b的通意即后一项减前一项的值 当函数返回值小于0,则a会出现在b前边 这里举个例子

代码语言:javascript
复制
var array=[-1,1,3,4,6,10]; 
array.sort((a,b)=>Math.abs(a-3)-Math.abs(b-3));

这玩意儿结果是啥? 分析一下

  1. |1-3|-|-1-3|=2-4=-2 ==> [1,-1]
  2. |3-3|-|1-3|=0-2=-2==>[3,1,-1]
  3. |4-3|-|3-3|=1>0==>[3,4,1,-1]
  4. |6-3|-|4-3|=3-1>0==>[3,4,6,1,-1]
  5. |10-3|-|6-3|=7-3=4>0==>[3,4,6,10,1,-1] 所以结果应为[3,4,6,10,1,-1]

另外注意,sort是排序原本的数组


JavaScript的数据类型

值类型(基本数据类型) :字符串(String)、数字(Number)、布尔(Boolean)、对空(Null)、未定义(Undefined)、Symbol

引用数据类型:对象(Object)、数组(Array)、函数(Function)

注意基本数据类型和引用数据类型的区别

Symbol 是 ES6 引入了一种新的原始数据类型,表示独一无二的值


JavaScript Window History

注意!!!下述所以方法属性有个核心要点在浏览器内

window.history 对象可不带 window 书写。

为了保护用户的隐私,JavaScript 访问此对象存在限制。

一些方法:
  • history.back() - 等同于在浏览器点击后退按钮
  • history.forward() - 等同于在浏览器中点击前进按钮
  • history.go() - go() 方法可加载历史列表中的某个具体的页面。该参数可以是数字,使用的是要访问的 URL 在 History 的 URL 列表中的相对位置。(-1上一个页面,1前进一个页面)。或一个字符串,字符串必须是局部或完整的URL,该函数会去匹配字符串的第一个URL。
一些属性
  • history.length - 返回历史记录列表中的URL数量,包括当前加载的页面

阻止浏览器默认行为

  • window.event.returnValue = false
  • event.preventDefault();

实例:放在提交表单中的onclick事件中则不会提交表单,如果放到超链接中则不执行超链接


原生js设置样式

fe: document.getElementById('button1').style.backgroundColor="red";


js中的location对象

Location 对象存储在 Window 对象的 Location 属性中,表示那个窗口中当前显示的文档的 Web 地址

Location 对象属性

属性

描述

hash

设置或返回从井号 (#) 开始的 URL(锚)。

host

设置或返回主机名和当前 URL 的端口号。

hostname

设置或返回当前 URL 的主机名。

href

设置或返回完整的 URL。

pathname

设置或返回当前 URL 的路径部分。

port

设置或返回当前 URL 的端口号。

protocol

设置或返回当前 URL 的协议。

search

设置或返回从问号 (?) 开始的 URL(查询部分)。

Location 对象方法

属性

描述

assign()

加载新的文档。

reload()

重新加载当前文档。

replace()

用新的文档替换当前文档。


Promise的done与扩展always(或者说finally)

done

Promise 对象的回调链,不管以then方法或catch方法结尾,要是最后一个方法抛出错误,都有可能无法捕捉到(因为 Promise 内部的错误不会冒泡到全局)。因此,我们可以提供一个done方法,总是处于回调链的尾端,保证抛出任何可能出现的错误。

代码语言:javascript
复制
asyncFunc()
.then(f1)
.catch(r1)
.then(f2)
.done()

done 引用自blog.csdn.net/ixygj197875…

always(finally)

这个非常简单,表示不管 Promise 对象最后状态如何,都会执行的操作


Promise的then

我想你对于

代码语言:javascript
复制
promise
.then(()=>{
    console.log('success');
})

蛮熟悉 谁知道这玩意儿居然有第二个参数!

代码语言:javascript
复制
promise.then(()=>{},()=>{
    console.log('fail');
})

关于this 的工作原理,4种情况

1、当在函数调用的时候指向widow 2、当方法调用的时候指向调用对象 3、当用apply和call上下文调用的时候指向传入的第一个参数 4、构造函数调用指向实例对象 JS中this关键字, 它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用 全局函数调用时,this指向全局函数; 应该是指向调用全局函数的对象。


Math.floor()和Math.ceil()

floor向小取整,ceil向大取整,不四舍五入


call()和apply()

call() 方法使用一个指定的 this 值和单独给出的一个或多个参数来调用一个函数。 apply() 方法使用一个指定的 this 值和参数列表来调用一个函数。


哪些事件支持冒泡,哪些不支持

本图来自 www.nowcoder.com/questionTer…

null == undefined

尽管null和undefined是不同的,但它们都表示“值的空缺”,两者往往可以互换,因此==运算符认为两者是相等的

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-09-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 原生JS如何获取父节点?
  • sort()函数详细
  • JavaScript的数据类型
  • JavaScript Window History
    • 一些方法:
    • 一些属性
  • 阻止浏览器默认行为
  • 原生js设置样式
  • js中的location对象
    • Location 对象属性
    • Location 对象方法
  • Promise的done与扩展always(或者说finally)
    • done
    • always(finally)
  • Promise的then
  • 关于this 的工作原理,4种情况
  • Math.floor()和Math.ceil()
  • call()和apply()
  • 哪些事件支持冒泡,哪些不支持
  • null == undefined
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档