- 博客(23)
- 收藏
- 关注
原创 Web前端基础系列(一): 作用域与闭包
几个概念:作用域:用于确定在何处以及如何查找变量(标识符)的一套规则。词法作用域:词法作用域是定义在词法阶段的作用域。词法作用域是由写代码时将代码和块作用域写在哪里来决定的,因此当词法作用域处理代码是会保持作用域不变(大部分情况)。块作用域:指的是变量和函数不仅可以属于所处的作用域,也可以属于某个代码块(通常用{}包裹)。常见的块级作用域有 with,try/catch,let,const 等。函数作用域:属于这个函数的全部变量都可以在整个函数范围内使用及复用(包括嵌套作用域)。作用域链:查找变
2022-01-26 20:22:48
992
原创 代码片段
1、数组合并有时候用concat并不好,因为原先两个数组不变,而返回新的数组,进行多次合并的时候,会很浪费内存;用for循环的话,显得臃肿:for(i in b){a.push(b[i])};一行代码:a.push.apply(a,b) 例如:a.push.apply(a,[1,2,3]);...
2018-03-29 16:18:00
259
转载 CSS传统布局基础
摘自 https://mp.weixin.qq.com/s/-LcNZWFFty2lWuND6uuNNA传统布局方案:浮动、定位等手段flex布局方案grid布局方案传统布局方案来源于CSS2,兼容性好flex方案通过父元素单方面配置相关的CSS属性来决定子元素的布局规则,且大多数情况下无需子元素的参与,学习成本低,代码更加简练。但是要到IE10才开始支持,且需要使用-ms-前缀(IE11无需)。...
2018-03-27 18:54:00
481
转载 从浏览器地址栏输入url到显示页面的步骤(以HTTP为例)
1、在浏览器地址栏输入URL 2、浏览器查看缓存,如果请求资源在缓存中并且新鲜,跳转到转码步骤 ①如果资源未缓存,发起新请求 ②如果已缓存,检验是否足够新鲜,足够新鲜直接提供给客户端,否则与服务器进行验证。 ③检验新鲜通常有两个HTTP头进行控制Expires和Cache-Control: HTTP1.0提供Expires,值为一个绝对时...
2018-03-07 21:58:20
7445
1
原创 vue全栈商城项目-Node基础编程
1、Common规范或者:2、创建一个HttpServer3、创建一个Web容器,可以访问到Html内容利用fs文件模块:pathname为得到的文件名,多了开头的"/",用substring除去新建一个login页面:4、Http模块客户端演示模拟客户端js调用第三方服务,其实就是中间层的服务util模块里inspect方法用以展示完整输出信息运行结果:express:cnpm i -g exp...
2018-02-28 23:10:57
2056
原创 vue全栈商场项目-商品列表页面
.vue后缀的有组件,有页面,页面放在views文件夹,组件放在components文件夹;css文件导入:组件导入:实际上此处的<nav-header>可以匹配nav-header,navHeader,NavHeader;对此有疑惑,请看关于组件的命名;面包屑组件的slot:slot什么都不放:在nav-bread标签里加一个Goods:slot加name属性:传送门:官方文档讲解s...
2018-02-27 23:47:35
9219
原创 vue全栈商城项目-路由
根据不同的url地址展示不同的内容或页面,前端路由就是把不同路由对应不同的内容或页面的任务交给前端做,之前是通过服务端根据url不同返回不同的页面实现的。什么时候使用?在单页面应用,大部分页面结构不变,只改变部分内容的使用。前端路由优缺点:优点:用户体验好,不需要每次从服务器全部获取缺点:1.不利于seo 2.使用浏览器前进后退的时候会重新请求,没有合理利用缓存3.单页面无法记住之前滚动的位置,无...
2018-02-26 22:41:49
1053
转载 javascript的常见注意点
作者:CarterLihttps://segmentfault.com/a/1190000012730162检查一个变量是否为对象之前,首先判断其值是否为 null虽然不愿承认,JS 标准说:typeof null === 'object'// true毋庸置疑的, null 不具备作为对象类型的基本特征,是原始类型。这是一个广为人知的 JS 的 bug,,它从 JS 诞生开始就存在,从未、而且永...
2018-02-24 10:29:56
174
转载 Vue双向绑定原理及实现
vue的双向绑定原理及实现 一个极简双向数据绑定的示例: var obj = {}; Object.defineProperty(obj,'hello',{ set:function(newVal){ document.getElementById
2018-01-29 11:05:48
11872
3
原创 Vue组件data必须是函数的理解
我们先来看data的几种写法:1、 var app=new Vue({ el:'#app', data:{ isLogin: false } })2、 var app=new Vue({ el:'#app', data: function(){
2018-01-18 13:00:23
3149
转载 Vue里标签嵌套限制问题解决
受到html本身的一些限制,像、、、这样的元素里允许包含的元素有限制,而另一些像这样的元素只能出现在某些特定元素的内部。变通的方案是使用特殊的 is 特性应当注意,如果使用来自以下来源之一的字符串模板,则没有这些限制:----------------内联模板字符串--------.vue组件这句话意思是:这样不可以
2018-01-18 11:10:16
4085
原创 Vue不能检测数组或对象变动问题的解决
来看一个实例: vue li:hover { cursor: pointer; } {{item.name}} {{numbers[index]}} var vm = new Vue({ el: ".wrap",
2018-01-16 22:33:40
9107
转载 js的this关键字
(转自阮一峰老师博客)this是javascript的一个关键字。它代表函数运行时,自动生成的一个内部对象,在函数内部使用。随着函数使用场合不同,this的值会发生变化。但总的原则是:this指向的是调用函数的那个对象。四种情况下的this:一、纯粹的函数调用这是函数的最通常用法,属于全局性调用,this就代表全局对象Global。var x = 1; func
2018-01-15 20:31:48
206
原创 js中getter和setter
在学习Vue计算属性时,有一句“计算属性默认只有 getter ,不过在需要时你也可以提供一个 setter”。getter和setter到底是什么?于是我查找了资料:在Es5中可以使用getter和setter部分改写默认操作,但是只能应用在单个属性上,无法应用在整个对象上。getter是一个隐藏函数,会在获取属性值时调用。setter也是一个隐藏属性,会在设置属性值时调用。例子:
2018-01-15 16:21:07
826
原创 原生js中apply()和call()
每个函数都包括两个非继承而来的方法:apply()和call()。两者用途都是在特定的作用域中调用函数,等于重新设置了函数体内this对象的值。两者区别仅在于接收参数方式不同,apply()第一个参数是调用apply的函数运行的作用域,的第二个参数可以是Array的实例(数组),也可以是arguments对象,call()第一个参数是this的值没有变化,而其余参数都直接传递给函数(也就是逐个
2018-01-08 17:05:12
314
原创 关于js中函数参数“按值传递”的理解
解释:把函数外部的值复制给函数内部的参数,就和把值从一个变量复制到另一个变量一样。首先看参数传递为基本类型的情况:function addTen(num){ num += 10; return num; }var count = 20;var result = addTen(count);alert(count); //20alert(result); //30这种情
2018-01-05 17:22:14
208
原创 由js逻辑“与”和“或”到强制类型转换( type coercion)
逻辑与操作符属于短路操作符,即如果第一个操作数能够决定结果(为false),那么就不会对第二个操作数求值。(1).对于布尔值,逻辑与是非常简单的,只要有一个false,就返回false;(2).逻辑运算符操作对象遵循从左到右的顺序来判断,逻辑与操作符(&&)先判断第一个数,如果第一个数的逻辑判断是true,则还需判断第二个数,结果输出第二个操作数;如果第一个数能决定结果(即为fal
2018-01-05 00:03:26
2897
原创 toLocaleString( )和toString( )区别
《javascript高级程序设计》解释:“toLocaleString( )返回对象的字符串表示,该字符串与执行环境的地区对应;toString( )返回对象的字符串表示;” 感觉还是不太好理解......来看几个实例:var a = 6666;a.toLocaleString();//"6,666"a.toString();//"6666"可以看到,当数字是三位以上时,会
2018-01-04 22:12:55
2578
转载 js中数组与对象的遍历
一、数组的遍历:首先定义一个数组 arr=['snow','bran','king','nightking'];1、for循环,需要知道数组的长度;2、foreach,没有返回值,可以不知道数组长度;arr.forEach(function(ele,index){console.log(index);console.log(ele)})3、map函数,遍历数组每个元素
2017-12-22 11:11:21
690
转载 从一道题对工作年限的思考
摘自公众号前端大全我们从一个小小的面试题目入手:编写一个javscript函数 fn,该函数有一个参数 n(数字类型),其返回值是一个数组,该数组内是 n 个随机且不重复的整数,且整数取值范围是 [2, 32]。现在假设你的工作时间为 y 年,经验系数默认为 1,即工作经验是:Y = 1 * y。从现在开始,以下的错误,你要是遇到了,请自行调整经验系数。| 可用作为一段需要满足需求的代码来说,它最...
2017-12-18 21:48:33
210
原创 cmd进入指定盘符
老方法:1、按“Win + R”快捷键,在打开的“运行”对话框中,输入“cmd”后按回车键;2、先进入到“F”盘。注意:直接用“cd F:\JavaWorkspaces\jw3”命令无效。输入“F:”(路径不区分大小写,下同)后按回车键;3、进入“JavaWorkspaces\jw3”目录:输入“cd JavaWorkspaces\jw3”命令后按回车键
2017-12-14 15:02:24
9179
转载 js中const、var、let的区别
1.const定义的变量不可以修改,而且必须初始化。1 const b = 2;//正确2 // const b;//错误,必须初始化 3 console.log('函数外const定义b:' + b);//有输出值4 // b = 5;5 // console.log('函数外修改const定义b:' + b);//无法输出 2.var定义的变量可以修改,
2017-12-14 14:37:17
107
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人