js代码

JS中的单引号和双引号

為{幸葍}努か 提交于 2020-02-02 03:47:36
JS里面的单引号和双引号可以同时使用,但是要遵循一定的准则。 最外面用了双引号了,那么里面就不能再用双引号了,因为引号是成双对的,浏览器读到一个双引号后,到第2个双引号时才算结束;同理,浏览器读到一个单引号后,必须要读到第二个单引号才算结束, 不管是单引号还是双引号,里面都可以套相反的引号,但是不可以双引号里面套单引号,这个单引号再套双引号,这是不行的。 如果在引号里面使用相同的引号,需要用 \ 转义。 单引号转义为\' 单引号转义为\" 单引号和双引号之间的字符串可以相加 'af'+"bvvv"+'dd' 输出 "afbvvvdd" 还有一种情况,,这里的单引号也是字符串的一部分 "<div class='con"+"tent'></div>" 输出 "<div class='content'></div>" 从代码编译的角度说的话,单引号在JS中被浏览器(IE,Chrome,Safari)编译的速度更快(在FireFox中双引号更快)。 来看一些案例 首先 ,单引号和双引号在各自单独用时是木有什么区别的,都可以,比如: var a="你好";//双引号,变量a的内容是字符串 你好 var b='你好';//单引号,变量b的内容是字符串 你好 console.info(a===b);//输出true,它们本质都是一样的字符串 其次 ,单引号和双引号混合使用时,这时候要特别注意了

JS作用域和作用域链

心不动则不痛 提交于 2020-02-01 12:27:09
在JS代码执行之前会首先创建一个全局作用域,里面有所有的定义的变量。 在函数定义的时候也会创建一个函数的作用域,作用域中包含了该函数中所定义的变量。 具体还没有理解很清楚,感觉作用域和执行上下文很像。 就是当在函数执行的代码中使用到某个变量的时候,它首先会在自己的作用域中找该变量,如果找不到就去上一级的作用域中找,一直到全局作用域,直到找到为止。如果都找不到就为undefined。 注在es5中没有块作用域,在es6中有。 及例子如下: if(true) {   var a = 4; } console.log(a);//在es5中是可以输出4的,因为一个{}中的代码就叫做块作用域,在es5中没有块作用域,只有函数作用域。 来源: https://www.cnblogs.com/maycpou/p/12248047.html

【JavaScript】使用定时器实现Js的延期执行或重复执行setTimeout,setInterval

北战南征 提交于 2020-02-01 11:49:39
使用定时器实现JavaScript的延期执行或重复执行 window对象提供了两个方法来实现定时器的效果,分别是window.setTimeout()和window.setInterval。其中前者可以使一段代码在指定时间后运行;而后者则可以使一段代码每过指定时间就运行一次。它们的原型如下: window.setTimeout(expression,milliseconds); window.setInterval(expression,milliseconds); 其中,expression可以是用引号括起来的一段代码,也可以是一个函数名,到了指定的时间,系统便会自动调用该函数,当使用函数名作为调用句柄时,不能带有任何参数;而使用字符串时,则可以在其中写入要传递的参数。两个方法的第二个参数是milliseconds,表示延时或者重复执行的毫秒数。下面分别介绍两种方法。 1.window.setTimeout方法 该方法可以延时执行一个函数,例如: <script language="JavaScript" type="text/javascript"> <!-- function hello(){ alert("hello"); } window.setTimeout(hello,5000); //--> </script> 这段代码将使得页面打开5秒钟后显示对话框“hello”

js定时器

久未见 提交于 2020-02-01 11:45:29
定时器分两种分别是setTimeout和setInterval。 两者的用法分别是setTimeout(funhander,time);setInterval(fnhander,time);设置的相应计时器需要用clearTimeout(对象)和clearInterval(对象)清掉。有以下几点需要注意: 第一:setTimeout(funhander,time)的作用是在过time毫秒后,执行 一次 句柄funhander指向的方法。而setInterval(funhander,time)的作用是,每隔time毫秒后,就执行一次句柄funhander指向的方法。一直到我清掉计时器停止。 第二:巨大多数的计时器使用都是为了执行渐变、渐隐渐现、位置渐变等效果,所以funhander指向的方法会被多次执行。因此如果我们使用setTimeout做定时器,一般要把计时器的设置写在funhander指向的方法里,这样就可以循环调用,多次执行funhander,一直到我清掉这个定时器。而在使用setInterval设置定时器的时候,一般要放在funhander指向行数的外面。 第三:funhander指向的方法里处理了渐变中的一步,又会被重复执行,所以在此方法中大多包含有判断语句IF。用来控制渐变到一定程度的时候进行相应处理。比如清掉定时器或者进行循环操作。 第四:funhander为句柄

json和jsonp

假如想象 提交于 2020-02-01 10:04:41
前言: 说到AJAX就会不可避免的面临两个问题,第一个是AJAX以何种格式来交换数据?第二个是跨域的需求如何解决?这两个问题目前都有不同的解决方案,比如数据可以用自定义字符串或者用XML来描述,跨域可以通过服务器端代理来解决。 但到目前为止最被推崇或者说首选的方案还是用JSON来传数据,靠JSONP来跨域。而这就是本文将要讲述的内容。 JSON和JSONP虽然只有一个字母的差别,但其实他们根本不是一回事儿:JSON是一种数据交换格式,而JSONP是一种依靠开发人员的聪明才智创造出的一种非官方跨域数据交互协议。我们拿最近比较火的谍战片来打个比方,JSON是地下党们用来书写和交换情报的“暗号”,而JSONP则是把用暗号书写的情报传递给自己同志时使用的接头方式。看到没?一个是描述信息的格式,一个是信息传递双方约定的方法。 既然随便聊聊,那我们就不再采用教条的方式来讲述,而是把关注重心放在帮助开发人员理解是否应当选择使用以及如何使用上。 什么是JSON? 前面简单说了一下,JSON是一种基于文本的数据交换方式,或者叫做数据描述格式,你是否该选用他首先肯定要关注它所拥有的优点。 JSON的优点: 1、基于纯文本,跨平台传递极其简单; 2、Javascript原生支持,后台语言几乎全部支持; 3、轻量级数据格式,占用字符数量极少,特别适合互联网传递; 4、可读性较强

android原生和H5交互(转)

自作多情 提交于 2020-02-01 09:11:28
最近在左一个Android原生的H5混合开发的APP,之前还没有好好的总结一下Android原生 和 H5 之间交互的方法,这里来总结一下: 1、hybrid通信,主要就是前端的js和我们Android端的通信 这是最基本JS和Java 的通信方式: 这里我们分四块来讲: (1)、js调用android原生的代码(不传递参数) (2)、js调用android原生的代码(传递参数) (3)、android原生调用JS的代码(不传递参数) (4)、android原生调用JS的代码(传递参数) 好的我们这里先来创建一个工程: 在工程的main文件夹下创建一个文件夹assets ,然后把写好的H5页面放入该文件夹中,H5页面代码如下: < pre name = " code " class = " html " > <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> < html xmlns = " http://www.w3.org/1999/xhtml " > < head > < meta http-equiv = " Content-Type " content = " text/html;

JS实现全选功能

旧城冷巷雨未停 提交于 2020-02-01 07:06:03
000. 开始   学习JS有一段时间了,最近看了一些JS练手的小demo实例,自己也尝试着用JS进行实现。   全选功能是在很多注册页面、获取用户兴趣爱好、让用户勾选一些选项等页面中常见的一种效果,主要有全选/全不选,反选,重置,提交等几个功能。   现在我们就开一步一步的开始解析代码。另外注意一下,这里面运用到了一些外部的CSS文件和JS文件,单纯的只复制下面的代码可能不会出现你想要的结果,请移步github地址获取完整源代码: https://github.com/JinganGuo/JavascriptDemos 001. HTML部分 1 <!-- 2 @authors Guo Jingan (gja1026@163.com) 3 @date 2018-02-15 4 @intro 全选功能 5 !--> 6 <!DOCTYPE html> 7 <html lang="en"> 8 <head> 9 <meta charset="UTF-8"> 10 <title>全选功能练习(CheckAll)</title> 11 <link rel="stylesheet" href="style.css"> 12 <link rel="stylesheet" type="text/css" href="../commonCSS.css"> 13 <script src=

JavaScript语言核心--词法结构

巧了我就是萌 提交于 2020-02-01 05:41:46
编程语言的词法结构是一套基础性规则,用来描述如何使用这门语言来编写程序。作为语法的基础,它规定了诸如变量名是什么样的、怎么写注释,以及程序语言之间如何分隔等规则。 1、 字符集 JavaScript程序是使用 Unicode (计算机科学领域里的一项业界标准)符集编写的。Unicode是ASCII和Latin-1的超集,并支持地球上几乎所有在用的语言。有关 Unicode与JavaScript详解 ,可以看看大神的文章。 1.1、 区分大小写 JavaScript是区分大小写的语言。也就是说,关键字、变量、函数名和所有的标识符(identifier)都必须采取一致的大小写形式。比如:关键字"while"必须写成"while",而不能写成"While" 或者 "WHILE"。 同时需要注意的是,HTML并不区分大小写。例如,在HTML中设置事件处理程序时,onclick属性可以写成onClick,但在JavaScript中,必须使用全部小写的onclick。 1.2、空格、换行符和格式控制符 JavaScript会忽略程序中标识之间的空格,同样也会忽略换行符。为了提高代码可读性和可维护性。团队成员应该采用整齐、一致的缩进来行程统一的编码风格。比如采用EsLint代码风格来约束。 1.3、Unicode 转义序列 JavaScript定义了一种特殊的序列

JavaScript语法结构

扶醉桌前 提交于 2020-02-01 05:41:18
一:字符集 1、区分大小写 JavaScript是区分大小写的语言 所有的标识符(identifier)都必须采取一致的大小写形式 但是Html并不区分大小写(尽管Xhtml区分) 2、空格、换行符和格式控制符 JS会忽略程序中的标识(token)之间的空格。多数情况下也会忽略换行符 除了可以识别普通的空格符(\u0020),JS也可以识别如下这些表示空格的字符 *水平制表符(\u0009) *垂直制表符(\u000B) *换页符(\u000C) *不中断空白(\u00A0) *字节序标记(\ufeff) JS将如下字符识别为行为结束符 三:注释 //单行 /*...*/多行 四:直接量 直接量(literal):就是程序中直接使用的数据值。 eg:12//数字 1.2//小数 “hello world” //字符串文本 ’hi‘ //字符串 ture //布尔值 false //另一个布尔值 /javascript/gi //正则表达式直接量(用做模式匹配) null //空 五:标识符和保留字 在js中标识符用来对变量和函数进行命名,或者用作Js代码中的某些循环语句中的跳转位置的标记。 JS标识符必须以字母、下划线(_)或美元符($开始) 六:类型、值和变量 js数据类型分为两类:原始类型(primitive type)和对象类型(object type)。 primitive

【装饰博客】一篇就够了

ぐ巨炮叔叔 提交于 2020-02-01 03:50:08
  前言:虽说博客主要用来学习分享技术,但在学习之余能把自己的博客打扮的更独特,那是不错的选择。 这篇博客主要会分享 怎么给自己的博客增加更多炫酷的特效(js动态),都是以博客园为例。 申请博客的 js 权限(必须); 博客背景上漂浮的磁力线,鼠标吸铁石; 鼠标点击出漂浮出字体("富强", "民主", "文明"...); 在个人博客中播放自己喜欢的歌曲; 博客不使用 js 权限,也可以使用 js 的黑科技; 一.申请博客的 JS 权限   博客中为了安全考虑,默认是不可以进行 JS 编辑的,所以我们首先需要申请博客的 JS 权限。      先进入 【管理】-【设置】 界面中;      在上面图中 红框 的位置会有申请 JS 代码权限的链接,进入填写你的申请原因,进行申请即可,我提交申请 大概一个小时之后审批通过了。   如果通过后就可以对博客进行美化了,如果没通过..... 二.博客背景上漂浮的磁力线,鼠标吸铁石   你可能在很多博客中看到类似 当鼠标移动上去的时候会出现线条吸附在鼠标周围的特效,鼠标离开的时候线条就自动散开。(我的博客中就能看到)   这些特效都是调用 JS 来完成的。我贴出代码: <script> !function(){ function n(n,e,t){ return n.getAttribute(e)||t } function e(n){