js代码

Js中caller和callee的区别

北城以北 提交于 2019-12-14 17:02:21
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> caller返回一个函数的引用,这个函数调用了当前的函数;callee放回正在执行的函数本身的引用,它是arguments的一个属性 caller caller返回一个函数的引用,这个函数调用了当前的函数。 使用这个属性要注意: 1 这个属性只有当函数在执行时才有用 2 如果在javascript程序中,函数是由顶层调用的,则返回null functionName.caller: functionName是当前正在执行的函数。 var a = function() { alert(a.caller); } var b = function() { a(); } b(); 上面的代码中,b调用了a,那么a.caller返回的是b的引用,结果如下: var b = function() { a(); } 如果直接调用a(即a在任何函数中被调用,也就是顶层调用),返回null: var a = function() { alert(a.caller); } var b = function() { a(); } //b(); a(); 输出结果: null callee callee放回正在执行的函数本身的引用,它是arguments的一个属性 使用callee时要注意: 1 这个属性只有在函数执行时才有效 2

HTML基础三-JS

♀尐吖头ヾ 提交于 2019-12-14 16:30:52
一、JAVA Script 1.1 基本用法 HTML中的三把利器的JS 又称为JavaScript,看着好像和Java有点联系,实际上他和java半毛钱关系都没有,JavaScript和我们学习的Python、Go、Java、C++等,都是一种独立的语言,Python的解释器有Python2.7、Python3.x,浏览器具有解释JavaScript的功能,所以它才是HTML的三把利器之一。 在HTML中可以将JavaScript/JS的代码写在head中,被script标签所包裹,当浏览器解释HTML时,遇到style标签时,按照CSS规则解释,遇到Script标签时,按照JavaScript的语法规则解释。 引入JavaScript代码,类似于Python的import <script src="public.js" type="text/javascript"></script> head中引入JS与body中引入JS区别 html代码从上而下解析,如果在head中引入JS,影响页面打开的速度,存在风险,所以通常放在htmlbody的最下方,这样页面内容先展示,最后在加载JS。注:写在最下面要有底线,写在body内部的最底下。 注释 单行注释通过 // 多行通过 /* */ <!DOCTYPE html> <html lang="en"> <head> <meta

现代前端库开发指南系列(二):使用 webpack 构建一个库

时间秒杀一切 提交于 2019-12-14 12:54:52
前言 在前文中,我说过本系列文章的受众是在现代前端体系下能够熟练编写业务代码的同学,因此本文在介绍 webpack 配置时,仅提及构建一个库所特有的配置,其余配置请参考 webpack 官方文档。 输出产物 构建一个库与构建一个一般应用最大的不同点在于 构建完成后输出的产物 。 一般应用构建完成后会输出: 一个 html 文件 一个 js 入口 chunk 、若干子 chunk 若干 css 文件 若干其它资源,如图片、字体文件等 虽然输出的资源非常多,但实际上所有的依赖、加载关系都已经从 html 文件开始一层一层定下来了,换句话说,这个 html 文件实际上就是整个应用的入口。 一个库构建完成后会输出: 一个 CommonJS 格式的 js 文件 一个未压缩的 UMD 格式的 js 文件 一个已压缩的 UMD 格式的 js 文件 可能包括若干的 css 文件 可能包括若干的其它资源文件 库的入口分别是上面罗列的 js 文件;你可能会奇怪,一个库怎么会有3个入口文件呢?莫急,且听我一一道来。 CommonJS CommonJS 是 Node.js 推行的一种模块化规范,主要语法包括 module.exports 、 require() 等;而我们在使用 webpack 引入 npm 包时,实际上是处于 Node.js 环境,由此可知,这个 CommonJS 格式的入口 js 文件

js大文件分块上传断点续传demo

筅森魡賤 提交于 2019-12-14 06:07:25
文件夹上传:从前端到后端 文件上传是 Web 开发肯定会碰到的问题,而文件夹上传则更加难缠。网上关于文件夹上传的资料多集中在前端,缺少对于后端的关注,然后讲某个后端框架文件上传的文章又不会涉及文件夹。今天研究了一下这个问题,在此记录。 先说两个问题: 是否所有后端框架都支持文件夹上传? 是否所有浏览器都支持文件夹上传? 第一个问题:YES,第二个问题:NO 只要后端框架对于表单的支持是完整的,那么必然支持文件夹上传。至于浏览器,截至目前,只有 Chrome 支持。 如果需要其它的浏览器支持则需要借助于插件,比如泽优大文件上传控件: www.webuploader.net 关于WebUploader的功能说明: 大文件上传续传 支持超大文件上传(100G+)和续传,可以关闭浏览器,重启系统后仍然继续上传。 开源 提供ASP.NET,JSP,PHP示例和源代码,其中JSP提供MySQL,Oracle,SQL Server数据库的配置和示例代码。 分片、并发 分片与并发结合,将一个大文件分割成多块,并发上传,极大地提高大文件的上传速度。 当网络问题导致传输错误时,只需要重传出错分片,而不是整个文件。另外分片传输能够更加实时的跟踪上传进度。 预览、压缩 支持常用图片格式jpg,jpeg,gif,bmp,png预览与压缩,节省网络数据传输。 解析jpeg中的meta信息

js文件上传

家住魔仙堡 提交于 2019-12-14 03:30:04
步骤: 1.首先获取input对象 2.为input对象绑定onchange事件 3.获取上传的文件:var file = fileInput.files[0] 4.将获取的文件添加到FormData对象中 5.发送ajax请求:      FormData:如果要用 Ajax 上传文件,则需要使用 FormData 对象来作为数据,而不能使用 form 的 serialize 方法(原因是 serialize 方法得到的数据是一个字符串,其不支持二进制数据传输,因此无法上传文件)   cache:当发起一次请求后,会把获得的结果以缓存的形式进行存储,当再次发起请求时,如果 cache 的值是 true ,那么会直接从缓存中读取,而不是再次发起一个请求了。   从 cache 的工作原理可以得出,cache 的作用一般只在 get 请求中使用。   processData:处理数据:默认情况下,processData 的值是 true,其代表以对象的形式上传的数据都会被转换为字符串的形式上传。而当上传文件的时候,则不需要把其转换为字符串,因此要改成false   contentType:发送数据的格式"和 contentType 有个类似的属性是 dataType , 代表的是期望从后端收到的数据的格式,一般会有 json 、text……等. 而 contentType 则是与

常用的js代码

梦想与她 提交于 2019-12-14 01:27:18
UUID function getGui(){ var S4 = function() { return(((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1); }; return(S4() + S4() + S4() + S4() + S4() + S4() + S4() + S4()); } 封装一个时间戳转日期的插件 const dateFormatter = (formatter, date) => { date = date ? new Date(date) : new Date(); const Y = date.getFullYear() + ''; const M = date.getMonth() + 1; const D = date.getDate(); const H = date.getHours(); const m = date.getMinutes(); const s = date.getSeconds(); return formatter .replace(/YYYY|yyyy/g, Y) .replace(/YY|yy/g, Y.substr(2, 2)) .replace(/MM/g, (M < 10 ? '0' : '') + M) .replace(/DD/g,

一些JS的小技巧

旧时模样 提交于 2019-12-14 00:12:50
常量应该用全大写字母命名,用下划线分隔 常量名称使用CONSTANT_CASE的格式:所有大写字母,单词由下划线分隔。如果您绝对确信某个变量不应该更改, 那么可以通过将该常量的名称大写来表示。这使得在整个代码中使用该常量时,它的不变性非常明显。一个值得注意的例外是 如果常量是函数作用域的 在这种情况下,应该用camelCase来写。 // badconst number = 5;// goodconst NUMBER = 5; 每次声明一个变量 每个局部变量声明只声明一个变量:声明如令a = 1, b = 2,不推荐。 // badlet a = 1, b = 2, c = 3;// goodlet a = 1;let b = 2;let c = 3; 使用单引号,而不是双引号 普通的字符串用单引号(')分隔,而不是双引号(")。 提示:如果字符串包含单引号字符,可以考虑使用模板字符串来避免转义引号。 // badlet directive = "No identification of self or mission."// badlet saying = 'Say it ain\u0027t so.';// goodlet directive = 'No identification of self or mission.';// goodlet saying = `Say

小白怎么入门Web前端行业 JS基础知识点有哪些

落花浮王杯 提交于 2019-12-13 21:27:19
小白怎么入门Web前端行业?JS基础知识点有哪些?Web前端工程师是当前各大企业都比较稀缺的人才,薪资待遇和就业前景都很不错。不论是专业还是非专业,有基础亦或是无基础,都想通过学习Web前端实现高薪就业。不过,学习要一步一个脚印,不能一口吃一个胖子,所有的实战经验都是基于理论而积累形成,下面就给大家梳理汇总一下JS相关的基础知识点。 1、执行环境:有时也叫环境,是JavaScript中最为重要的一个概念,执行环境定义了变量或函数有权访问的其他数据。 2、变量对象:每一个执行环境都有一个与之关联的变量对象,环境中定义的所有的变量和函数都保存在这个的对象中。 3、作用域链:代码在环境中执行时,会创建变量对象的作用域链,保证对执行环境有权访问的所有变量和函数的有序访问。作用域链的前端,始终是当前执行代码所在环境的变量对象。 4、活动对象:如果当前执行环境是函数,则将活动对象作为变量对象。 5、可执行代码:1)全局代码:例如加载外部的JS文件或者本地标签内的代码,全局代码不包括 function体内的代码;2)函数代码:function体内的代码;3)eval代码:eval()函数计算某个字符串,并执行其中的JS代码,比如eval("alert('hello world')")。 6、执行上下文栈:在一个JS程序中,必定会产生多个执行上下文,JS引擎会以栈的方式来处理它们

前端知识之 bootstrap

心不动则不痛 提交于 2019-12-13 10:38:03
前端知识之 bootstrap 01. bootstrap的介绍和下载 01.1 介绍 Bootstrap是Twitter推出的一个用于前端开发的开源工具包。它由Twitter的设计师Mark Otto和Jacob Thornton合作开发,是一个CSS/HTML框架。目前,Bootstrap最新版本为4.4。 注意,Bootstrap有三个大版本分别是 v2、v3和v4,我们这里学习最常用的v3。 使用Bootstrap的好处: Bootstrap简单灵活,可用于架构流行的用户界面,具有 友好的学习曲线,卓越的兼容性,响应式设计,12列栅格系统,样式向导文档,自定义JQuery插件,完整的类库,基于Less等特性。 01.2 下载 bootstap英文官方: https://getbootstrap.com/ bootstrap中文官网: http://www.bootcss.com/ 下载地址: http://v3.bootcss.com/getting-started/#download 注意: Bootstrap提供了三种不同的方式供我们下载,我们不需要使用Bootstrap的源码 和 sass项目,只需要下载生产环境的Bootstrap即可。 下载完成以后的目录如下: bootstrap/dist/ ├── css/ │ ├── bootstrap.css #

js声明变量的三种方式

邮差的信 提交于 2019-12-13 07:28:32
JS 声明变量的三种方式 (1)使用变量步骤:a.声明-->b.赋值-->3.调用 正确用法: <script type="text/javascript"> // 方式一:声明和赋值不分离 var correctUsage = "正确使用变量的方式一"; alert(correctUsage); //能够弹出来该变量所对应的值 // 方式二:声明和赋值分离 var correctUsage2; correctUsage2 = "正确使用变量的方式二"; alert(correctUsage2); </script> 错误用法: <script type="text/javascript"> var correctUsage; // 错误一: 没有赋值就使用 alert(correctUsage); //underfined // 错误二:没有赋值就拼接字符串 correctUsage += "没有赋值就改值"; alert(correctUsage); //undefined没有赋值就改值 </script> (2)变量的产生与死亡 已使用var关键词声明表里为例 2.1 声明在函数外部的变量 产生:js加载到该变量所在行时产生 死亡:js代码加载完毕,变量死亡 2.2声明在函数内部的变量 前提:该变量所在的函数被调用 产生:js执行到该变量所在行时产生 死亡: