1.短路逻辑 逻辑运算中,如果前一个条件已经可以得出最终结论,则后续所有条件不再执行!这里的逻辑运算指的是逻辑与和逻辑或. 我们要理解逻辑与是两个条件都为真的时候,才为真,如果第一个就是假的,那么后面一个也不用执行了.逻辑非是两个条件中有一个是真,则结果为真,所以只要第一个为真,那么结果为真,后面一条语句就不用执行了.于是又如下例题: console.log(2&&3); console.log(2||3); console.log(0&&1); console.log(0…
今天,我复习了一下JavaScript的数组相关的知识,总结一下数组的API: 总共有11个API:按照学习的先后顺序来吧,分别是: ① toString()  语法:arr.toString(); 将数组转化为字符串,并且返回这个字符串,以逗号分隔:但是不改变原数组: var arr=[1,2,3,4,5]; var result=arr.toString(); console.log(result); //1,2,3,4,5 console.log(arr); //[1,2,3,4,5] t…
1.JavaScript 对大小写敏感. JavaScript 对大小写是敏感的. 当编写 JavaScript 语句时,请留意是否关闭大小写切换键. 函数 getElementById 与 getElementbyID 是不同的. 同样,变量 myVariable 与 MyVariable 也是不同的. 2.空格 JavaScript 会忽略多余的空格.您可以向脚本添加空格,来提高其可读性.下面的两行代码是等效的: var name="Hello";var name = "…
每种编程语言学到数组的时候,都会讲到排序算法,当时学C语言的时候,卡在排序算法.今天来总结一下javascript中如何实现三种排序算法. 1.冒泡排序(默认升序排列哦) 原理: 冒泡排序的原理,顾名思义,就是小数往上冒,大数往下沉.从第一个数开始,如果比第二个数大就交换位置,然后跟第三个数字进行比较大小,交换位置等. 举例一下,有数组[2,4,3,5,1] 第一次循环:2<4  不交换:4>3 交换:4<5不交换:5>1交换,故结果是[2,3,4,1,5]; 第二次循环:2<…
本文接上篇,基础部分相对薄弱的同学请移步<JavaScript正则表达式学习笔记(一) - 理论基础>.上文介绍了8种JavaScript正则表达式的属性,本文还会追加介绍几种JavaScript正则表达式的属性(注意是非标准属性,但很好用). 一. 上文回顾 本文会用到上篇文章部分内容,所以简单回顾下. 1.1 JavaScript正则表达式标志符 g: 全局匹配,即找到所有匹配的.对应属性RegExp#global. i: 忽略字母大小写.对应属性RegExp#ingoreCase. m:…
JavaScript 正则表达式 学习笔记 标签(空格分隔): 基础 JavaScript 正则表达式是用于匹配字符串中字符组合的模式.在javascript中,正则表达式也是对象.这些模式被用于RegExp的exec.test方法,以及String的match.replace.search和split方法. 源码地址 原文地址 一.创建一个正则表达式 两种方法构建正则表达式: 使用一个正则表达式字面来那个,其由包含在斜杠之间的模式组成.在加载脚本后,正则表达式字面值提供正则表达式的编译.当正则…
学习地址:http://www.w3school.com.cn/js/index.asp 文字版: https://github.com/songzhenhua/github/blob/master/JavaScript简易学习笔记 .txt  …
javaScript 对象学习笔记 关于对象,这对我们软件工程到学生来说是不陌生的. 因为这个内容是在过年学到,事儿多,断断续续,总感觉有一丝不顺畅,但总结还是要写一下的 JavaScript 对象 DOM 节点 JS 数字 JavaScript 中的所有事物都是对象:字符串.数值.数组.函数... 此外,JavaScript 允许自定义对象. JavaScript 对象 JavaScript 提供多个内建对象,比如 String.Date.Array 等等. 对象只是带有属性和方法的特殊数据类…
1.0, 概述.JavaScript是ECMAScript的实现之一 2.0,在HTML中使用JavaScript. 2.1 3.0,基本概念 3.1,ECMAScript中的一切(变量,函数名,操作符)都是区分大小写的. 3.2, 3.3, 3.4, 3.5, typeof 用于基本类型的判别,instanceof用于引用类型(Object类型)的判别. 3.6, 3.7, 3.8,Boolean类型有两个取值:true 和 false(区分大小写).使用Boolean()函数如下:注意,除n…
写在前面 近期在看<MVC的Javascript富应用开发>一书.本来是抱着一口气读完的想法去看的.结果才看了一点就傻眼了:太多不懂的地方了. 仅仅好看一点查一点,一点一点往下看吧,进度虽慢但也一定要坚持看完. 本学习笔记是对书上所解说内容的理解和记录. 笔记里的代码大多会按书上摘录下来,由于<MVC的Javascript富应用开发>是结合了JQuery库.所以对于JQuery中不太懂的知识点也会附在代码后面,也算是一些额外的收获. MVC概述 要学习MVC,首先得知道MVC是什么…
看完<你不知道的javascript>上,对作用域的新的理解(2018-9-25更) 一.学习笔记:   1.javascript中的作用域和作用域链 +  每个函数在被调用时都会创建一个自己的执行环境(作用域),javascript中一切皆为对象,函数也是一个对象:函数对象和其他对象一样,拥有通过代码访问的属性和仅供javascript引擎访问的内部属性.其中一个内部属性就是[[scope]],它是函数在被定义时就创建的,它包含了 函数被创建的作用域中对象的集合.这个集合被称为函数的作用域链…
最小全局变量 JavaScript通过函数管理作用域.在函数内部生命的变量只在这个函数内部,别的地方不可用.全局变量是指在函数外或是未声明直接简单使用的.每个Javascipt环境有一个全局对象,当你在任意函数外使用this都可以访问.你创建的每一个全部变量都成了这个全局对象的属性.在浏览器里,方便起见,该全局对象有个附件属性叫做window,此window指向该全局对象本身. myglobal = "hello"; // 不推荐写法console.log(myglobal); //…
1.关于JS: (1)脚本语言——不需要编译的语言(常见有cmd,t-sql)----解释性语言; (2)动态类型的语言——1.代码只有执行到那个位置才知道那个变量中存储的是什么 2.对象中没有某个属性或方法时可以通过点语法来添加: (3)弱类型语言——都是通过var来声明: (4)基于对象的语言——并非面向对象的语言,而是基于对象,即它本身有对象,不需要创建,可直接拿来使用,可模拟面向对象的思想. 2.JS的组成: (1)ECMAscript——JavaScript的一个标准: (2)DOM—…
我们有时要验证下页面上的一些逻辑,比如开始时间不能晚于结束时间,不对时不让保存.我们可以在相关的字段事件上处理,但这如果要判断的字段比较多时,就比较麻烦了. 这时候我们就可以利用Form的OnSave事件,下面介绍下具体的做法: 1. Form的OnSave事件 2. JS方法 function formSave(context) { if (!dateCheck("new_valid_on", "new_valid_to")) { alert("Vali…
在慕课之前学过JS深入浅出,最近发现很多东西都记不太清楚了,再复习一遍好了,感觉这个课程真的超级棒的,做做笔记,再添加一些学习内容…
最近工作轻松了点,想起了以前总是看到的一个单词promise,于是耐心下来学习了一下.   一:Promise是什么?为什么会有这个东西? 首先说明,Promise是为了解决javascript异步编程时候代码书写的方式产生的. 随着javascript的发展,异步的场景越来越多.前端有AJAX,setTimeout等,后端Node异步更多.按照传统的做法,那么就是各种回调嵌回调.代码可以把人绕晕. 这个时候,CommonJS社区提出了一个叫做Promise/A+的规范,这个规范定义了如何书写异…
此文都是大牛们关于闭包的观点,在此只是总结. 闭包应用的两种情况即可——函数作为返回值,函数作为参数传递. 1 深入理解javascript原型和闭包 判断一个变量是不是对象非常简单.值类型的类型判断用typeof,引用类型的类型判断用instanceof. 对象里面的一切都是属性,只有属性,没有方法.方法也是一种属性.因为它的属性表示为键值对的形式. javascript中的对象可以任意的扩展属性. var obj={ a : 10, b : function(x){ return this.…
------------------2016-7-20更------------------ 最近在看<高性能JavaScript>一书,里面当中,有讲很多提高js性能的书,正在看的过程中,记下做法以及原因,供以后学习参考: 1.将经常使用的对象成员.数组项.和域外变量存入局部变量 原因:数据存储位置对大地代码整体性能会产生重要的影响,直接变量和局部变量的访问速度快于数组和对象成员.因为局部变量位于作用域链的第一个对象中,全局变量位于作用域链的最后一环.变量在作用域链的位置越深,访问的时间就越…
在javaScript 学习中,闭包肯定是一个让人头疼的问题,而闭包必定离不开[[scope]]作用域 scope存储了执行期上下文的集合 而了解scope以及scope链又是一个十分抽象的问题 我们先把它具体化成问题 有这样一个函数: function a(){ var a = 1; } a(); 在执行这段代码时 首先 a从预编译到执行期 1.a  defined a.[scope] 0 :GO 2.a  doing    a.[scope] 0 :AO 1 :GO a首先创建GO 占sco…
前端JavaScript学习 JavaScript导入方式:1.外部文件导入<script src="myScript.js"></script> 2.在标签内插入<script> 和 </script> 会告诉 JavaScript 在何处开始和结束. JavaScript输出数据:1.使用 window.alert() 弹出警告框.2.使用 document.write() 方法将内容写到 HTML 文档中.3.使用 innerHTM…
所属专栏: Vue 开发学习进步 说实话都是逼出来的,对于前端没干过ES6都不会的人,vue视频也就看了基础的一些但没办法,接下来做微服务架构,前端就用 vue,这块你负责....说多了都是泪,脚手架框架布了都没看过干就完事,不过好在做好了,这里写下给和我一样苦逼的同学能快点适应入门下,当然一些基础的东西还是要知道的 主要分为几个部分 安装 准备工作 mock 假数据页面 axios 连接后台真数据 正式环境部署 前端完整代码 肯定有地方不太对的,麻烦大家指出来 安装 前端我推荐用 vscode…
简介 众所周知,JavaScript 既是一门充满吸引力.简单易用的语言,又是一门具有许多复杂微妙技术的语言,即使是经验丰富的JavaScript 开发者,如果没有认真学习的话也无法真正理解它们. 如果每次遇到JavaScript 中出乎意料的行为时,你的反应就是把它加入黑名单(很多人都是这么做的),那用不了多久你就会把JavaScript 语言真正的多样性全部排除. 现在你所理解的JavaScript 很可能是从别人那里学来的不完整版.这样的JavaScript 只是真正的JavaScript…
JavaScript入门(一) 学习js之前,我们先来了解一下,什么是JavaScript? JavaScript是一种解释型语言.在运行的时候,一边读一边编译一边执行.简单来说就是,在执行js代码时,读第n行代码的时候,并不知道第n+1行的代码是什么. JavaScript也是一种轻量型的脚本语言.所谓"脚本语言",指的是他不具备开发操作系统的能力,而是只用来编写控制其他大型应用程序(比如浏览器)的"脚本" JavaScript也是一种嵌入式语言(embedded…
参考资料 视频链接:https://www.bilibili.com/video/BV1Sy4y1C7ha?spm_id_from=333.999.0.0 菜鸟教程:https://www.runoob.com/js/js-tutorial.html 视频目录: 当前进度[P181] 基础知识:P1-P10 变量:P11-19 数据类型:P20-40 运算符:P41-54 流程控制分支结构:P55-68 循环:P69-95 数组:P96-112 函数:P113-133 作用域:P134-139…
JavaScript ------------------------------变量声明 : var a;变量赋值 : var a = 12; 函数声明 : var mAwesomeFunction = function myArgument){ }函数调用 : mAwesomeFunction(something); 函数 作为函数的参数传入另一个函数中 声明函数1 square = function (a) { return a * a ; } 声明函数2 applyOperation =…
1 JavaScript设计模式深入分析 私有属性和方法:函数有作用域,在函数内用var 关键字声明的变量在外部无法访问,私有属性和方法本质就是你希望在对象外部无法访问的变量. 特权属性和方法:创建属性和方法时使用的this关键字,因为这些方法定义在构造器的作用域中,所以它们可以访问到私有属性和方法;只有那些需要直接访问私有成员的方法才应该被设计为特权方法. 共有属性和方法:直接链在prototype上的属性和方法,不可以访问构造器内的私有成员,可以访问特权成员,子类会继承所有的共有方法. 共有…
1 理解Javascript constructor实现原理 在 JavaScript 中,每个函数都有名为“prototype”的属性,用于引用原型对象.此原型对象又有名为“constructor”的属性,它反过来引用函数本身.这是一种循环引用 2 JavaScript探秘:构造函数 Constructor 除了创建对象,构造函数(constructor) 还做了另一件有用的事情—自动为创建的新对象设置了原型对象(prototype object) .原型对象存放于 ConstructorFu…
掌握定时器工作原理必知:JavaScript引擎是单线程运行的,浏览器无论在什么时候都只且只有一个线程在运行JavaScript程序. 常言道:setTimeout和setInterval是伪线程. Javascript是运行在单线程环境中的,在页面的声明周期中,不同时间可能有其他代码在控制Javascript进程,比如:包含在<script>元素中的代码.dom元素的事件处理程序.Ajax的回调函数.定时器仅仅是在未来的某个时刻将代码添加到代码队列中,执行时机是不能保证的.代码队列按照先进先…
1 理解JavaScript原型 什么是原型? 原型是一个对象,其他对象可以通过它实现属性继承. 任何一个对象都可以成为原型么? 是 哪些对象有原型 所有的对象在默认的情况下都有一个原型,因为原型本身也是对象,所以每个原型自身又有一个原型(只有一种例外,默认的对象原型在原型链的顶端.) 当我们已经创建了一个实例对象 ,我们想要这个实例对象继承一个已经存在的对象的功能比如说Array,就可以使用原型 函数A的原型属性(prototype property )是一个对象,当这个函数被用作构造函数来创…
重点知识点摘要 一 函数对象和其它对象一样,拥有可以通过代码访问的属性和一系列仅供JavaScript引擎访问的内部属性 其中一个内部属性是[[Scope]],由ECMA-262标准第三版定义,该内部属性包含了函数被创建的作用域中对象的集合,这个集合被称为函数的作用域链,它决定了哪些数据能被函数访问. 从作用域链的结构可以看出,在运行期上下文的作用域链中,标识符所在的位置越深,读写速度就会越慢.如上图所示,因为全局变量总是存在于运行期上下文作用域链的最末端,因此在标识符解析的时候,查找全局变量是…