如果有java基础的同学,可以回顾下<再谈Java数据结构—分析底层实现与应用注意事项>:java把内存分两种:一种是栈内存,另一种是堆内存.基本类型(即int,short,long,byte,float,double,boolean,char)在栈区分配空间,所有的对象都在堆(Heap)中分配空间.按照这思路来谈下JavaScript. 最新的 ECMAScript 标准定义了 7 种数据类型: 6 种原始类型-基本数据类型(按值访问) Null (js中的数据在底层是以二进制存储,如果前三…
这篇是对angularJS的一些疑点回顾,是对目前angularJS开发的各种常见问题的整理汇总.如果对文中的题目全部了然于胸,觉得对整个angular框架应该掌握的七七八八了.希望志同道合的通知补充内容 Angular 的数据绑定采用什么机制,详述原理? 脏检查机制.阐释脏检查机制,必须先了解如下问题. 单向绑定(ng-bind) 和 双向绑定(ng-model) 的区别? ng-bind 单向数据绑定($scope -> view),用于数据显示,简写形式是 {{}}. 两者的区别在于页面没…
即使千辛万苦,还是把网站升级到http2了,遇坑如<phpcms v9站http升级到https加http2遇到到坑>. 因为理论相比于 HTTP 1.x ,在同时兼容 HTTP/1.1 完全语义,进一步减少了网络延迟. 对于前端开发人员来说,无疑减少了在前端方面的优化工作.比如雪碧图&文件合并||内容内嵌||域名分片 http1.0的缺点 http1.0被抱怨最多的就是连接无法复用,和head of line blocking这两个问题.理解这两个问题有一个十分重要的前提:客户端是依…
再谈js的作用域 面试中遇到的题目: 题目一: var word = "hello world";  (function(){  alert(word);  var word = "hello test";  })(); 效果 http://keleyi.com/keleyi/phtml/js/1.htm 题目二: var word ="hello world";  (function(){  alert(world);  function wo…
js的传值和传址还是真绕,前回文说道 1.值类型是传值的 2.对象和数组是传址的 这两点通过例子的到了证实 然而还有一种情况没有讨论 即 函数的参数的传值和传址 通过实验,在函数中用一个新对象去覆盖传入的对象,则类似于传值的效果,原数据无法得到新值 } } function setValue(arg){ arg = s1 } setValue(s) console.log(s.value) console.log(s1.value) 这个例子的结果是 s.value = 1 s1.value=2…
一.我们经常困惑,对象究竟是什么,其实这是一种思维,一种意识上的东西,就像我们都说    世界是有物质组成的道理一样,理解了下面的几句话!对象也不是那么抽象!    1.javascript中的所有事物都是对象,字符串.数值.数组.函数!    而且js还允许自定义对象!    2.对象就只是带有属性和方法的特殊数据类型    3.属性是与对象相关的值,方法是能够在对象上执行的动作! 其实在这里的时候我们应该就有一个疑问要解决了,我们说函数是一个对象,为什么?    很简单,js中所有的事物都是…
前些天在<浅谈 JSON.stringify 方法>说了他的正确使用姿势,今天来说下 toJSON 方法吧.其实我觉得这货跟 toString 一个道理,他是给 stringify 方法字符串化的时候调用的.看下 MDN 官方文档吧<toJSON behavior>.非常简单,但是要注意的是他和 stringify 方法第二个参数稍微有点不同.因为 stringify 第二个参数是回调函数时,只是对当前 key 对应的值进行修改.而 toJSON 则是对当前对象进行修改.例如: v…
简介 History对象最初设计用来表示窗口的浏览历史,但是,出于隐私方面的原因,History对象不再允许脚本访问已经访问过的实际URL.虽然,我们不清楚历史URL,但是,我们可以通过History对象的内置属性方法进行跳转. 对象属性 length 该属性代表着浏览器历史列表中的URL数量.初始值为1,如果当前窗口先后访问了两个网址,那该属性的值变为2. history.length // 1 // 访问了一个新的URL history.length // 2 state HTML5新增属性…
对象的二进制序列化非常有用,也非常方便. 我们可以把对象序列化为字节数组,也可以把对象序列化到文件,还可以把对象序列化到文件并进行加密. 先引用这些命名空间: using System.IO;using System.Runtime.Serialization.Formatters.Binary;using System.Security.Cryptography;using System.Text; 序列化对象到字节数组: /// <summary> /// 把对象序列化为字节数组 ///…
对象: ECMA-262把对象定义为 :无序属性的集合,其属性可以包含基本值,对象或者函数. 严格来讲,这就相当于说对象是一组没有特定顺序的值.对象的每一个属性或方法都有一个名字,而每个名字都映射到一个值. 所有我们可以把对象想象成散列表:无非就是一组名值对,其中值可以是数据或函数.每个对象都是基于一个引用类型创建的. 下面是几个关于对象属性的一些方法 1.hasOwnProperty()方法 判断一个属性是在实例中,还是在原型对象中,可以使用这个方法.只有属性存在于对象实例中,这个方法才会返回…