首页 文章 精选 留言 我的

精选列表

搜索[js框架],共10000篇文章
优秀的个人博客,低调大师

BigCode 开源轻量级语言模型,仅支持 Python、JS 和 Java

BigCode 是一个开放的科学合作组织,致力于开发大型语言模型。近日他们开源了一个名为 SantaCoder 的语言模型,该模型拥有 11 亿个参数,可以用于 Python、Java 和 JavaScript 这几种编程语言的代码生成和补全建议。 根据官方提供的信息,训练 SantaCoder 的基础是 The Stack(v1.1)数据集,SantaCoder 虽然规模相对较小,只有 11 亿个参数,在参数的绝对数量上低于 InCoder(67 亿)或 CodeGen-multi(27 亿),但 SantaCoder 的表现则是要远好于这些大型多语言模型。不过也正是参数远远不及 GPT-3 等参数超过千亿级别的超大型语言模型,SantaCoder 适用的编程语言范围也比较有限,仅支持 Python、Java 和 JavaScript 三种语言。 为了照顾用户隐私和保证训练质量,在训练模型之前,BigCode 注释了 400 个样本,并建立和不断完善 RegEx 规则,以便在训练前从数据集的代码中删除诸如电子邮件地址、密钥和 IP 地址等敏感信息。 为了让开发者可以放心使用 SantaCoder 生成的代码,BigCode 推出了 Dataset Search 搜索工具。通过这个工具,开发者可以找出代码的来源,以便在 SantaCoder 产生的代码属于某一个项目的情况下,用户能够遵守相应的许可要求。 此外,BigCode 还推出了「Am I in The Stack?」工具,开发者可以检查自己名下的仓库是否是训练数据集的一部分,可以将自己的开源仓库从数据集中删除。 BigCode 目前已经在 Huggingface 网站中提供了 SantaCoder 演示,供任何人研究试用。

优秀的个人博客,低调大师

前端百题——js中的这些“this”指向都值得了解

写该系列文章的初衷是“让每位前端工程师掌握高频知识点,为工作助力”。用知识武装自己的头脑。 14.1 简介 this是javascript中的一个关键字,其使用方法类似于一个变量,是执行上下文中一个重要组成部分。其作用是可以在函数体内部获取当前的运行环境。 14.2 指向 每个函数的this是在调用的时候基于函数的执行环境绑定的,this的指向完全取决于函数的调用位置。(下面均是在浏览器环境下进行测试的结果) 在全局环境下,this 始终指向全局对象(window), 无论是否严格模式; console.log(this); // window 复制代码 普通函数内部的this分两种情况,严格模式和非严格模式。 ​ (1)非严格模式下,this 默认指向全局对象window ​ (2)严格模式下, this为undefined function fun() { console.log(this); // window } 复制代码 对象内部方法的this指向调用这些方法的对象 (1)函数的定义位置不影响其this指向,this指向只和调用函数的对象有关; (2)多层嵌套的对象,内部方法的this指向离被调用函数最近的对象(window也是对象,其内部对象调用方法的this指向内部对象, 而非window)。 const obj = { a: 10, b: 20, add: function () { return this.a + this.b; } }; console.log(obj.add()); // 30 const add = obj.add; console.log(add()); // NaN 复制代码 原型链中的方法的this仍然指向调用它的对象 const obj = { a: 10, b: 20 }; const prototypeObj = { add: function () { return this.a + this.b; } }; Object.setPrototypeOf(obj, prototypeObj); console.log(obj.add()); // 30 复制代码 构造函数中的this与被创建的新对象绑定。 function Fun() { this.a = 10; } const fun = new Fun(); console.log(fun.a); // 10 复制代码 当函数通过Function对象的原型中继承的方法 call() 和 apply() 方法调用时, 其函数内部的this值可绑定到 call() & apply() 方法指定的第一个对象上, 如果第一个参数不是对象,JavaScript内部会尝试将其转换成对象然后指向它。(见后续代码) 通过bind方法绑定后, 函数将被永远绑定在其第一个参数对象上, 而无论其在什么情况下被调用。(见后续代码) 当函数被当做监听事件处理函数时, 其 this 指向触发该事件的元素(针对于addEventListener事件) <button id="testId">按钮</button> const btn = document.getElementById('testId'); btn.addEventListener('click', function() { console.log(this); // <button id="testId">按钮</button> }); 复制代码 内联事件中的this指向分两种情况: (1)当代码被内联处理函数调用时,它的this指向监听器所在的DOM元素 <button onclick="console.log(this)">按钮</button> // 输出该DOM节点 复制代码 (2)当代码被包括在函数内部执行时,其this指向等同于 函数直接调用的情况,即在非严格模式指向全局对象window, 在严格模式指向undefined <button onclick="clickFun()">按钮</button> function clickFun() { console.log(this); // window } 复制代码 对于延时函数内部的回调函数的this指向全局对象window(当然可以通过bind方法改变其内部函数的this指向) function Fun() { this.a = 10; this.method = function() { setTimeout(function() { console.log(this); // window }, 1000); } } const fun = new Fun(); fun.method(); 复制代码 由于箭头函数不绑定this, 它会捕获其所在(即定义的位置)上下文的this值, 作为自己的this值,所以 call() / apply() / bind() 方法对于箭头函数来说只是传入参数,对它的 this 毫无影响。 function Fun() { this.a = 10; this.method = function() { setTimeout(() => { console.log(this); // Fun{a: 10, method: ƒ} }, 1000); } } const fun = new Fun(); fun.method(); 复制代码 14.3 改变this指向 除了隐式绑定this的方式,还能够通过显示绑定的方式,通过call、apply、bind方式改变this指向,对于这三者的区别后续将有专门的百题斩去阐述,本节主要进行一波简单使用。 call() call() 方法使用一个指定的 this 值和单独给出的一个或多个参数来调用一个函数。 function method(val1, val2) { return this.a + this.b + val1 + val2; } const obj = { a: 1, b: 2 }; console.log(method.call(obj, 3, 4)); // 10 复制代码 apply() apply() 方法调用一个具有给定this值的函数,以及以一个数组(或类数组对象)的形式提供的参数。 function method(val1, val2) { return this.a + this.b + val1 + val2; } const obj = { a: 1, b: 2 }; console.log(method.apply(obj, [3, 4])); // 10 复制代码 bind() bind() 方法创建一个新的函数,在 bind() 被调用时,这个新函数的 this 被指定为 bind() 的第一个参数,而其余参数将作为新函数的参数,供调用时使用。 function method(val1, val2) { return this.a + this.b + val1 + val2; } const obj = { a: 1, b: 2 }; const bindMethod = method.bind(obj, 3, 4); console.log(bindMethod); // [Function: bound method] console.log(bindMethod()); // 10 复制代码 扩展 call() 和 apply()的区别是call()方法接受的是参数列表,而apply()方法接受的是一个参数数组; bind返回的是一个绑定函数,而call和apply返回的是运行结果; 多次 bind() 是无效的,只会绑定到第一次调用的对象上; call() / apply() / bind() 方法对于箭头函数来说只是传入参数,对它的 this 毫无影响。 1.如果觉得这篇文章还不错,来个分享、点赞吧,让更多的人也看到 如果你觉得这篇文章对你有点用的话,麻烦请给我们的开源项目点点star: http://github.crmeb.net/u/defu 不胜感激 ! 来自 “开源世界 ” ,链接: https://ym.baisou.ltd/post/748.html ,如需转载,请注明出处,否则将追究法律责任。

资源下载

更多资源
Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册