js

js call

Deadly 提交于 2020-02-17 05:15:34
js call call 方法 请参阅 应用于:Function 对象 要求 版本 5.5 调用一个对象的一个方法,以另一个对象替换当前对象。 call([thisObj[,arg1[, arg2[, [,.argN]]]]]) 参数 thisObj 可选项。将被用作当前对象的对象。 arg1, arg2, , argN 可选项。将被传递方法参数序列。 说明 call 方法可以用来代替另一个对象调用一个方法。call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。 如果没有提供 thisObj 参数,那么 Global 对象被用作 thisObj。 ------------------------------------------------------------------------------------------- 乍一看,很容易把人看迷胡,先做一些简单的说明 obj1.method1.call(obj2,argument1,argument2) 如上,call的作用就是把obj1的方法放到obj2上使用,后面的argument1..这些做为参数传入. 举一个具体的例子 function add(a,b) { alert(a+b); } function sub(a,b) { alert(a-b); } add.call(sub,3

JS函数02

一曲冷凌霜 提交于 2020-02-17 02:20:29
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> </head> <body> <script type="text/javascript"> // test(); function test(){ alert('this is a test'); } //test(); //函数名称严格区分大小写 function TEST(){ alert("hello king"); } // TEST(); //函数名称重复会产生覆盖 //test(); function test(){ alert('hello nana'); } // test(); function test1(){ alert('this is test1 function'); } //alert(test1()); function test2(){ // return null; // return undefined; // return; // return true; // return 'this is king'; // return 1.2; alert('this is a test'); // return 1; } //alert(typeof (alert('this is a test')));

12306 抢票系列之只要搞定RAIL_DEVICEID的来源,从此抢票不再掉线(上)

非 Y 不嫁゛ 提交于 2020-02-16 18:28:14
郑重声明: 本文仅供学习使用,禁止用于非法用途,否则后果自负,如有侵权,烦请告知删除,谢谢合作! 开篇明义 本文针对 自主开发 的 抢票 脚本在抢票过程中常常遇到的 请求无效 等问题,简单分析了 12306 网站的前端加密算法,更准确的说,是探究 RAIL_DEVICEID 的生成过程. 因为该 cookie 值是抢票请求的 核心基础 ,没有它将无法正确发送请求,或者一段时间后就会到期失效需要重新获取,或者明明更改了浏览器用户代理(navigator.userAgent)标识却还是被限制访问… 因为它并不是真正的客户端标识,只是迷惑性战术,浏览器唯一标识其实是 RAIL_OkLJUJ 而它却被 12306 网站设计者 故意没有添加到 cookie ,因此造成了很强的欺骗性,编程真的是一门艺术! 你以为你的爬虫已经可以正常模仿浏览器,殊不知,只要没搞懂谁才是真正的浏览器标识,那么再怎么换马甲也 难逃造假事实 . 上图展示了 RAIL_OkLJUJ 的存在位置,可能是为了 兼容市面上绝大数浏览器 ,也可能是为了 联合各种前端缓存技术作为特征码 ,总是除了 cookie 之外, RAIL_OkLJUJ 存在于 Local Storage , Session Storage , IndexedDB 和 Web SQL 等. 值得注意的是,cookie 中 故意没有设置 RAIL

原生JS基础知识(九)

十年热恋 提交于 2020-02-16 16:50:28
原生JS基础知识 我的github 立即执行函数 和普通函数的唯一区别 : 此类函数没有声明 , 且会立即执行 , 执行完后立即释放 ( 剪线 ) , 适合做初始化工作 官方的两种写法 (function () {}()); // 推荐 (function () {})(); Tips : 只有表达式才能被执行符号 () 执行 function demo() { console.log(123); // 函数声明不能被执行 }(); var demo = function () { console.log(123); // 123 }() Tips : 能被执行符号执行的 表达式的名字 会被自动忽略 , 以下写法实际上就是立即执行函数 var test = function () { console.log(123); // 123 }(); console.log(test); // undefined + function test() { console.log(123); // 123 }(); console.log(test); // test is not defined - function test() { console.log(123); // 123 }(); console.log(test); // test is not defined !

记录写时间组件的过程

自作多情 提交于 2020-02-16 14:30:38
1.当前时间各种格式 用了momentjs 官网 http://momentjs.cn/ 2.定时器 created(){ this.updateMin(); this.updateDay(); this.timeInterval=setInterval(this.updateMin,1000); this.dayInterval=setInterval(this.updateDay,1000*6); } beforeDestroy() { clearInterval(this.timeInterval); clearInterval(this.dayInterval); } https://www.cnblogs.com/xiaohuochai/p/5773183.html 3. const let var区别 https://www.cnblogs.com/ksl666/p/5944718.html 4.农历 抄抄改改好久,最后还是直接使用了github的一个轮子 https://github.com/jjonline/calendar.js 调用另一个JS文件中的函数 import lunar from './calendar'; this.lunarDate = lunar.myLunar(...) 导入的js文件中,要有导出 function myLunar(y, m,

js中异步和同步的区别

时光怂恿深爱的人放手 提交于 2020-02-16 10:38:21
执行环境 :js的执行环境是单线程的,它一次只能执行一个任务,按照主线程里执行栈里任务的排列来执行。 同步任务 :是按照主线程里执行栈里任务的排列来执行的。 异步任务 :遇到异步任务,先不放入主线程,因为异步任务不知道什么时候才能获取结果,这样会影响页面正常显示。当异步任务执行后,进入阻塞状态,主线程会继续向下执行代码,当异步任务执行完成,把对应的回调函数封装成事件放入任务队列中,当主线程里的任务执行完毕,才去任务队列中找事件中的回调函数来执行,这些事件的回调函数都执行完后,相当于完成了一次事件循环。 同步和异步的区别 :同步会阻塞后续代码的执行,异步不会阻塞后续代码的执行。 前端会用到异步的地方 : 1.setInterval 、 setTimeout setInterval ( function ( ) { console . log ( "a" ) } , 3000 ) / / 每隔3秒会把回调函数封装成事件放入任务队列中 2.ajax请求 $ . get ( "./data.json" , ( data ) => { console . log ( data ) } ) / / 当请求完成把回调函数封装成事件放入任务队列中 3.事件绑定 document . getElementById ( "btn" ) . addEventListener ( "click" ,

JS基础

三世轮回 提交于 2020-02-16 10:13:28
一.JS介绍   JS语言是浏览器脚本语言,可以编写运行在浏览器上的代码程序,书写在script标签中,属于解释器、弱语言类型编程语言。 二.JS的组成 JS语言由ES语法、DOM(document object model)、BOM(browser object model)三部分组成。ES(ECMAScript)语法分为ES5和ES6。 1.行间式 书写在一个个全局事件名属性中 <div id="ddd" onmouseover="this.style.color = 'red' " onmouseleave= "this.style.color = 'blue'">行间式</div> 2.内联式 存在于标签script中,语法采用的是小驼峰命名法,属性的值都是用字符串形式进行赋值 <script id="d1"> d1,style.backgroundColor = "pink" </script> 3.外联式 是通过script标签的src数据链接外部js文件 <script src= "js文件.js"></script> JS存在位置 (JS出现在head标签底部:依赖型JS库 ; 出现在body标签底部:功能型JS脚本) JS以;分号标识语句的结束,以作用域({})标识附属关系 三.JS变量 ES5语法: var ddd=1; 无块级作用域变量 ddd=1; 全局变量

JS中的“==”与强制类型转换

落花浮王杯 提交于 2020-02-16 08:12:50
JavaScript中有“==”与“===”,那么他们有何区别呢? 对于基本数据类型, === (!==)只有当两个变量的类型和值都相等时,才返回true;而 == (!=)则会对变量进行 强制类型转换 ,只要转换后的值相等,则换回true。 下面结合代码讲一下在转换不同的数据类型时,相等 == 和不相等 != 操作符遵循的 强制转型基本规则 : 1. 如果有一个操作数是布尔值,则在比较相等性之前先将其转换为数值:false转换为0,而true转换为1; false == 0 //true true == 1 //true true == 3 //false 2. 如果一个操作数是字符串,另一个操作数是数值,在比较相等性之前先将字符串转换为数值; "123" == 123 //true 3. 如果一个操作数是对象,另一个操作数不是,则调用对象的valueof ()方法,用得到的基本类型值按照前面的规则进行比较; var a = [ 1 , 2 , 3 ] alert(a == "1,2,3") //true, a.valueOf()为"1,2,3" 需要注意的是: a. null和undefined是相等的,null和undefined不能转换成其他任何值; null == undefined //true undefined == 0 //false null == 0 /

使用js获取select选中文本

我们两清 提交于 2020-02-16 07:30:12
jquery获取select选择的文本与值 获取select : 获取select 选中的 text : $("#ddlregtype").find("option:selected").text(); 获取select选中的 value: $("#ddlregtype ").val(); 获取select选中的索引: $("#ddlregtype ").get(0).selectedindex; 设置select: 设置select 选中的索引: $("#ddlregtype ").get(0).selectedindex=index;//index为索引值 设置select 选中的value: $("#ddlregtype ").attr("value","normal“); $("#ddlregtype ").val("normal"); $("#ddlregtype ").get(0).value = value; 设置select 选中的text: var count=$("#ddlregtype option").length; for(var i=0;i<count;i++) { if($("#ddlregtype ").get(0).options[i].text == text) { $("#ddlregtype ").get(0).options[i]

7H5是什么

…衆ロ難τιáo~ 提交于 2020-02-16 05:00:35
1、H5它包括了HTML5 的标记规范,运用到了例如 CSS、JS(JavaScript)等多种计算机语言,可以实现多种动效和视听效果,会利用到后端和前端的多种功能,主要在移动端传播。H5就是移动端网页。2、HTML5规范要求所有的用户自定义属性以"data-"开头 来源: https://www.cnblogs.com/gushixianqiancheng/p/10963950.html