js代码

JS基础概念

心不动则不痛 提交于 2019-12-30 05:29:00
JS基础概念 1. 算法及流程图 算法类型:1.算数算法;2.事务性算法(解决某个问题的方法和先后顺序)。 JS语法概述 1. 引入JS的方法 1.用 <script src=""></script> 引入外部JS文件; 2.使用 <script></script> 标签嵌入网页,一般放在head内,也可放在body内,但要保证调用前已被读取加载到内存内; 3.直接作为某个标签的事件代码。 2. 标识符(命名) 1.区分大小写; 2.第一个字符可以为任意Unicode字母,$,_(下划线); 3.第二个字符及以后字符可以使用数字。 注意:保留字(即关键字)和infinity,NaN,undefined不能用作标识符。 3.变量 变量即对"值"的引用,使用变量等同于引用某个值。 变量声明由var,let,const var作用于全局;let写在区块内,作用于局部;const声明一个常量(标识符为大写,赋值后就不能被改变) 4. 区块 区块即使用{}将多个相关的语句组合到一起,不会单独产生一个作用域,变量声明使用let。 5. 数据类型 5种基本类型:string number boolean null (知道想要什么,却没有得到) underfined (完全不知道想要什么,没有得到) 3中引入型:object 对象 array 数组 function 函数

js中的一些隐式转换和总结

浪尽此生 提交于 2019-12-30 05:28:07
js中的不同的数据类型之间的比较转换规则如下: 1. 对象和布尔值比较 对象和布尔值进行比较时,对象先转换为字符串,然后再转换为数字,布尔值直接转换为数字 [] == true; //false []转换为字符串'',然后转换为数字0,true转换为数字1,所以为false 2. 对象和字符串比较 对象和字符串进行比较时,对象转换为字符串,然后两者进行比较。 [1,2,3] == '1,2,3' // true [1,2,3]转化为'1,2,3',然后和'1,2,3', so结果为true; 3. 对象和数字比较 对象和数字进行比较时,对象先转换为字符串,然后转换为数字,再和数字进行比较。 [1] == 1; // true `对象先转换为字符串再转换为数字,二者再比较 [1] => '1' => 1 所以结果为true 4. 字符串和数字比较 字符串和数字进行比较时,字符串转换成数字,二者再比较。 '1' == 1 // true 5. 字符串和布尔值比较 字符串和布尔值进行比较时,二者全部转换成数值再比较。 '1' == true; // true 6. 布尔值和数字比较 布尔值和数字进行比较时,布尔转换为数字,二者比较。 true == 1 // true 许多刚接触js的童鞋看到这么多的转换规则就懵圈了,其实规律很简单,大家可以记下边这个图 如图,任意两种类型比较时

JS基础语法

落爺英雄遲暮 提交于 2019-12-30 05:27:26
1、JavaScript 输出 JavaScript 可以通过不同的方式来输出数据:   使用 window.alert() 弹出警告框。   使用 document.write() 方法将内容写到 HTML 文档中。   使用 innerHTML 写入到 HTML 元素。   使用 console.log() 写入到浏览器的控制台。 <!DOCTYPE html> <html> <body> <h1>我的第一个页面</h1> <p>我的第一个段落。</p> <script> window.alert(5 + 6); </script> </body> </html> window.alert() <!DOCTYPE html> <html> <body> <h1>我的第一个 Web 页面</h1> <p id="demo">我的第一个段落</p> <script> document.getElementById("demo").innerHTML = "段落已修改。"; </script> </body> </html> document.getElementById() <!DOCTYPE html> <html> <body> <h1>我的第一个 Web 页面</h1> <p>我的第一个段落。</p> <script> document.write(Date()); <

js中加号(+)的两个作用和基本数据类型转换

被刻印的时光 ゝ 提交于 2019-12-30 05:26:00
加号(+)的两个作用: 1、当加号两侧为数值是,则进行相加运算 2、当加号一侧有字符串是,则进行拼接 基本数据类型转换: 1、将数值转换成字符串toString()     格式:数值变量名.toString() 2、将字符串转换成整型parseInt()     注意点:字符串第一个字符只能为数字 如果不是数字 会报NaN (Not a Number);     格式:parseInt(字符串变量名) 3、将字符串转换成浮点型 pareFloat()     格式:parseFloat(数值变量名) 如果把数字与字符串相加,结果将成为字符串 代码演示: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title>菜鸟教程(runoob.com)</title> 6 </head> 7 <body> 8 9 <p>点击按钮创建及增加字符串变量。</p> 10 <button onclick="myFunction()">点击这里</button> 11 <p id="demo"></p> 12 </body> 13 </html> 14 <script> 15 function myFunction() 16 { 17 var x=5+5; 18 var y="5"+5; 19 var z="Hello

JS基础语法

别来无恙 提交于 2019-12-30 05:25:35
JS全称JavaScript,是网页里面使用的脚本语言,同时也是一种非常强大的语言。添加JS语言一般放在为网页的底部(一般越靠下越好),输入<script type="text/javascript"></script>即可在其中间输入要设置的JS语言。对该语言进行注释有单行注释和多行注释,单行注释为在该行前面加上“//”即可,不过这种注释方式只能注释单行;多行注释同在CSS里面的注释方式一样,在需要注释的内容的两端输入“/* */”即可。 JS也同其他的程序一样,所有的字符全部是英文半角的,大部分情况下每条语句结束之后要加分号,且每一块代码结束之后加换行,程序前后呼应(前面有一个括号"("后面一定有一个括号结束")")。 JS中的输出语法有: “alert("文字");”表示弹出对话框输出信息; “confirm("文字");”表示弹出对话框,选择确定或取消,执行选择后的内容; “prompt("请输入");”弹出一个可以让用户输入的对话框,根据输入内容执行下面的内容; “console.log("文字");”用于后台控制台的输出,可以在页面内点击检查,然后选择“Console”进行查看。 JS是一种弱类型语言,PHP同它一样,同样属于弱类型语言,它的特点是使用起来会更灵活,具有可变化性,可自由转化其使用的类型而不需要指定类型,其类型会根据后面的数据的变化而改变,较为简单;

浏览器解析JS机制

痴心易碎 提交于 2019-12-30 05:17:05
浏览器解析JS机制 一、浏览器的运行机制 浏览器是多进程的,其中包含了: 1)GPU进程 2)第三方插件进程 3)浏览器渲染进程 4)Browser进程 这里面的进程很好理解,浏览器本身,第三方插件扩容,浏览器渲染,GPU。其中,浏览器渲染JS就是通过浏览器渲染进程进行的。 浏览器渲染引擎是多线程的,其中包括以下线程: 1)GUI渲染线程 ---> 界面渲染 2)JS引擎线程 ---> JS处理 3)事件触发线程 ---> 事件处理 4)定时器线程 ---> 定时器处理 5)http异步请求线程 ----> 异步请求处理 一般我们前端所学的就是对以上线程的操作和处理,管理好以上线程对我们前端技术能够有很大的提升。 二、JS引擎线程处理 在JS引擎线程中,可以分为同步和异步任务,其中: 1)同步任务全部通过主线程执行,形成 执行栈 2)异步任务通过事件触发线程或者定时器线程处理,形成 任务队列 3)当执行栈中的任务全部处理完成,主线程为空闲的时候,会从任务队列中提取任务到执行栈中执行。 以上就是浏览器中JS的执行机制。 三、浏览器中的任务类型及一些案例 JS引擎线程和GUI渲染是冲突的,因为JS引擎线程可能存在修改dom造成页面 重绘(repatian) / 回流(reflow) 的操作,所以当JS引擎线程busy的时候会将GUI渲染线程放在队列中,等待JS引擎线程空闲。

理解JS执行上下文

穿精又带淫゛_ 提交于 2019-12-30 04:29:49
代码分类 首先我们将JS代码分为全局代码和函数代码,全局代码就是全局作用域写的代码,全局都有效的代码,函数代码就是写在函数体内的代码,只在函数体重有效 执行上下文 全局执行上下文 :JS代码在执行之前会进行预解析,对全局数据进行预处理,分为以下三个步骤: 1、将var定义的全局变量添加为全局对象的属性,并且赋值undefined; 2、function声明的全局函数,添加为全局对象的方法,赋值function(也就是说将整个函数提升为全局变量的方法); 3、将this赋值给全局对象(浏览器环境是window对象,Node.JS环境是global对象); 4、开始执行全局代码; 函数执行上下文 :在调用函数,准备执行函数体之前,创建对应的函数执行上下文对象,对局部数据进行预处理: 1、将函数的形参变量(arguments)添加为执行上下文的属性; 2、函数体内var声明的局部变量添加为执行上下文的属性,赋值undefined; 3、function声明的函数添加为执行上下文的方法,赋值function; this指向调用函数的对象; 4、开始执行函数体代码; tips:其实变量提升和函数提升就是用执行上下文来解释的。 来源: CSDN 作者: Joey_Tribiani 链接: https://blog.csdn.net/Joey_Tribiani/article/details

前端新人的面试经验

人走茶凉 提交于 2019-12-30 04:14:21
双非本科,通信工程,算是转到IT行业这边的了。从大二暑期正式开始学习前端,想想已经一年的时间了。期间经历了很多,从迷惘到清晰,从艰难自学到找到实习,从备战秋招到找到工作。能经历的我都经历过了。来说说那些【前端工作者】的艰辛与欢乐。 开始自学前端 电话面问题不多,但是十分考验对相关知识熟悉程度,面试官是 P7(不理解这个就去百度吧) 大二暑期留在学校,一边参加数学建模培训,一边自己学习前端的基础。由于之前学习过一些HTML和JS的基础,我就直接开始学习jquery了,跟着李炎恢老师的JQuery教程学习,算是入了门。学习了BootStrap框架。 暑期就跟着视频学习,做了两个小项目。期间出现问题怎么办,能怎么办,就各种百度解决,看博客,逛社区。在现在看来,当时就是没有学会走就想着跑。自己之后在JS基础这里吃了很多亏。 跟着实验室开始做项目 实验室老师让做一个物联网平台,于是我们就凑吧凑吧,成了一个team,有前端,后台,移动端,嵌入式。 所以建议之后的学弟学妹,如果你们学校有实验室,去一去,自己潜心学习,加上良好的氛围,进步会很大的。这个项目就让我真正开始学习到前后台交互,数据格式处理,浏览器渲染和兼容性问题的处理。 春招(实习) 寒假荒废了一个寒假,没有想到,刚开学的开始,就是各大厂开始招聘暑期实习了,当时简历也没做,知识也没有复习,整个就是懵逼状态。然后随即开始赶超。

hexo主题中添加相册功能

依然范特西╮ 提交于 2019-12-30 02:54:58
博客已迁移至 http://lwzhang.github.io 。 基本上所有的 hexo 主题默认都没有实现相册功能,一方面相册功能的需求较少,毕竟 hexo 主要是写博客用的;另一方面实现相册功能比较麻烦,比如说: 图片放哪里,放在 source 文件夹中,需要解析成静态文件,图片一旦多的话就会解析的非常慢 怎么批量获取图片 url (文件名),图片那么多,不可能一个一个的手动输入图片 url 等等 所以需要找到一个好的解决方法。 注意:本博客使用的是 yilia 主题,该主题作者 litten 有实现了相册功能,但他是同步 instagram 的图片,我会用不同的方法实现一个相册功能。 新建一个页面 hexo new page "photo" 执行上面命令,会在 source 文件夹中生成 photo 文件夹,打开 photo 文件夹中的 index.md 文件,修改内容如下: title: 相册 noDate: 'true' --- <link type="text/css" href="/fancybox/jquery.fancybox.css" rel="stylesheet"> <div class="instagram"><section class="archives album"><ul class="img-box-ul"></ul></section><

【微信公众平台开发】微信JS-SDK开发,信公众平台js-sdk

家住魔仙堡 提交于 2019-12-30 01:56:15
根据微信开发文档步骤如下: 1.先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。 JS接口安全域名设置 mi.com(前面不用带www/http,域名必须备案过) 2.引入JS文件 在需要调用JS接口的页面引入如下JS文件,(支持https):http://res.wx.qq.com/open/js/jweixin-1.0.0.js 3.通过config接口注入权限验证配置 wx.config({ debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId: '', // 必填,公众号的唯一标识 timestamp: , // 必填,生成签名的时间戳 nonceStr: '', // 必填,生成签名的随机串 signature: '',// 必填,签名,见附录1 jsApiList: [] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 }); 注:appId从公众号里面获取,timestamp、nonceStr、signature临时通过按微信规定的规则发送url获取 4.通过ready接口处理成功验证 wx.ready(function(){ // config信息验证后会执行ready方法