javascript知识记录

忘了 真的忘记了好久没写原生js了
菜鸟教程

  • dom的match()方法,查找某属性有无某字段
<script>
function changeImage()
{
    element=document.getElementById('myimage')
    if (element.src.match("bulbon"))
    {
        element.src="/images/pic_bulboff.gif";
    }
    else
    {
        element.src="/images/pic_bulbon.gif";
    }
}
</script>
// html
<img decoding="async" loading="lazy" id="myimage" onclick="changeImage()" src="/images/pic_bulboff.gif" width="100" height="180">

js是单线程,程序的运行是同步的(同步不是同时运行,而是指按着代码顺序一行一行的执行;异步不按照代码顺序执行,异步的执行效率更高),由于异步是脱离主线程的独立子线程,所以主线程无法知道这个子线程合适结束,更何况在子线程结束后执行一些其他操作?为了解决这个问题所以有了回调函数

回调函数
回调函数就是一个函数,它是在我们启动一个异步任务的时候就告诉它:等你完成了这个任务之后要干什么。这样一来主线程几乎不用关心异步任务的状态了,他自己会善始善终。

  • 函数声明和类声明之间的一个重要区别在于, 函数声明会提升,类声明不会。
    你首先需要声明你的类,然后再访问它,否则类似以下的代码将抛出 ReferenceError:
浏览器bom–浏览器对象模型(Browser Object Model (BOM))尚无正式标准。
Window 对象
Navigator 对象
Screen 对象
History 对象
Location 对象
  • window.location对象
location.hostname 返回 web 主机的域名
location.pathname 返回当前页面的路径和文件名
location.port 返回 web 主机的端口 (80443)
location.protocol 返回所使用的 web 协议(http: 或 https:
  1. location.href 属性返回当前页面的 URL。
    https://www.runoob.com/js/js-window-location.html
    2.location.pathname 属性返回 URL 的路径名。
    /js/js-window-location.html
    3.location.assign() 方法加载新的文档。
window.location.assign("https://www.runoob.com")

window.location.assign(url) : 加载 URL 指定的新的 HTML 文档。 就相当于一个链接,跳转到指定的url,当前页面会转为新页面内容,可以点击后退返回上一个页面。
window.location.replace(url) : 通过加载 URL 指定的文档来替换当前文档 ,这个方法是替换当前窗口页面,前后两个页面共用一个窗口,所以是没有后退返回上一页的

- window Navigator

  • require和import的区别
    1.import在代码编译时被加载,所以必须放在文件开头,require在代码运行时被加载,所以require理论上可以运用在代码的任何地方,所以import性能更好。
    2.import引入的对象被修改时,源对象也会被修改,相当于浅拷贝,require引入的对象被修改时,源对象不会被修改,官网称值拷贝,我们可以理解为深拷贝。
    3.import有利于tree-shaking(移除JavaScript上下文中未引用的代码),require对tree-shaking不友好。
    4.import会触发代码分割(把代码分离到不同的bundle中,然后可以按需加载或者并行加载这些文件),require不会触发。
    5.import是es6的一个语法标准,如果要兼容浏览器的话必须转化成es5的语法,require 是 AMD规范引入方式。

目前所有的引擎都还没有实现import,import最终都会被转码为require,在webpack打包中,import和require都会变为_webpack_require_。

  • Array对象提供的join()方法可以将数组中的元素逐个拼接到一个字符串中,默认以逗号分隔。

var arrJoinString = arr.join();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值