- 博客(57)
- 收藏
- 关注
原创 JavaScript中的面向对象
一个例子:集合类 集合(set)是一种数据结构,用以表示非重复值的无序集合。集合的基础方法包括添加值、检测值是否在集合中,这种集合需要一种通用的实现,以保证操作效率。JavaScript的对象是属性名以及与之对应的值的基本集合。因此将对象只用做字符串的集合是大材小用。例子9-6用JavaScript实现了一个更加通用的Set类,它实现了从JavaScript值到唯一字符串的映射,然后将字符...
2019-01-06 00:13:57
10949
2
原创 类和原型、构造函数及扩充
每个JavaScript对象都是一个属性集合,相互之间没有任何联系。在JavaScript中也可以定义对象的类,让每个对象都共享某些属性,这种“共享”的特性是非常有用的。类的成员或实例都包含一些属性,用以存放或定义它们的状态,其中有些属性定义了它们的行为(通常称为方法)。这些行为通常是由类定义的,而且为所有实例所共享。例如,假设有一个名为Complex的类用来表示复数,同时还定义了一些复数运算。...
2019-01-05 00:37:06
2720
2
原创 js基础--类型转换与变量作用域
类型转换 转换和相等性 由于JavaScript可以做灵活的类型转换,因此其“==”相等运算符也随相等的含义灵活多变。例如,如下这些比较结果均是true:null==undefined//这两值被认为相等"0"==0//在比较之前字符串转换成数字0==false//在比较之前布尔值转换成数字"0"==false//在比较之前字符串和布尔值都转换成数字需要特别注...
2019-01-03 23:45:59
990
原创 js基础--算术运算,日期时间,正则表达式和全局对象
JavaScript中的算术运算 JavaScript程序是使用语言本身提供的算术运算符来进行数字运算的。这些运算符包括加法运算符(+)、减法运算符(-)、乘法运算符(*)、除法运算符(/)和求余(求整除后的余数)运算符(%)。除了基本的运算符外,JavaScript还支持更加复杂的算术运算,这些复杂运算通过作为Math对象的属性定义的函数和常量来实现:Math.pow(2...
2019-01-02 23:15:14
8490
原创 函数的实参和形参、作为值的函数
函数的实参和形参JavaScript中的函数定义并未指定函数形参的类型,函数调用也未对传入的实参值做任何类型检查。实际上,JavaScript函数调用甚至不检查传入形参的个数。 可选形参 当调用函数的时候传入的实参比函数声明时指定的形参个数要少,剩下的形参都将设置为undefined值。因此在调用函数时形参是否可选以及是否可以省略应当保持较好的适应性。为了做到这一点,应当给省略的参数...
2019-01-01 22:41:13
9540
原创 对象的属性,方法及序列化
对象的三个属性每一个对象都有与之相关的原型(prototype)、类(class)和可扩展性(extensible attribute)。下面将会展开讲述这些属性有什么作用,以及如何查询和设置它们。 原型属性 对象的原型属性是用来继承属性的,这个属性如此重要,以至于我们经常把“o的原型属性”直接叫做“o的原型”。原型属性是在实例对象创建之初就设置好的,通过对象直接量创建的对象使用...
2018-12-31 19:14:18
9236
原创 对象--删除属性、检测属性、枚举属性
删除属性 delete运算符,可以删除对象的属性。它的操作数应当是一个属性访问表达式。delete只是断开属性和宿主对象的联系,而不会去操作属性中的属性:delete book.author;//book不再有属性authordelete book["main title"];//book也不再有属性"main title"delete运算符只能删除自有属性,不能删除继承...
2018-12-30 23:44:15
7864
原创 js基础--对象
创建对象 对象直接量 创建对象最简单的方式就是在JavaScript代码中使用对象直接量。下面有一些例子:var empty={};//没有任何属性的对象var point={x:0,y:0};//两个属性var point2={x:point.x,y:point.y+1};//更复杂的值var book={ "main title":"JavaScript",/...
2018-12-29 23:48:16
1903
原创 使用函数思想进行编程
JavaScript并非函数式编程语言,但在JavaScript中可以像操控对象一样操控函数,也就是说可以在JavaScript中应用函数式编程技术。ECMAScript 5中的数组方法(诸如map()和reduce())就可以非常适合用于函数式编程风格。 使用函数处理数组 假设有一个数组,数组元素都是数字,我们想要计算这些元素的平均值和标准差。若使用非函数式编程风格的话,代码会是这样:...
2018-12-28 23:25:06
6636
1
原创 js基础--函数属性、方法和构造函数
我们看到在JavaScript程序中,函数是值。对函数执行typeof运算会返回字符串"function",但是函数是JavaScript中特殊的对象。因为函数也是对象,它们也可以拥有属性和方法,就像普通的对象可以拥有属性和方法一样。甚至可以用Function()构造函数来创建新的函数对象。 length属性 在函数体里,arguments.length表示传入函数的实参的个数。...
2018-12-27 23:30:42
3693
原创 js基础--闭包
从技术的角度讲,所有的JavaScript函数都是闭包:它们都是对象,它们都关联到作用域链。定义大多数函数时的作用域链在调用函数时依然有效,但这并不影响闭包。当调用函数时闭包所指向的作用域链和定义函数时的作用域链不是同一个作用域链时,事情就变得非常微妙。当一个函数嵌套了另外一个函数,外部函数将嵌套的函数对象作为返回值返回的时候往往会发生这种事情。有很多强大的编程技术都利用到了这...
2018-12-26 22:48:13
1159
原创 js基础(函数)--定义及四种调用方式
函数的定义 下面分别展示了函数语句和表达式两种方式的函数定义。注意,以表达式来定义函数只适用于它作为一个大的表达式的一部分,比如在赋值和调用过程中定义函数://输出o的每个属性的名称和值,返回undefinedfunction printprops(o){ for(var p in o) console.log(p+":"+o[p]+"\n");}...
2018-12-25 21:54:31
8156
原创 js基础--数组(3)
1.数组类型我们到处都可以看见数组是具有特殊行为的对象。给定一个未知的对象,判定它是否为数组通常非常有用。在ECMAScript 5中,可以使用Array.isArray()函数来做这件事情:Array.isArray([])//=>trueArray.isArray({})//=>false但是,在ECMAScript 5以前,要区分数组和非数组对象却很困难。instanceo...
2018-12-24 21:09:28
945
原创 js基础--数组(2)
1.创建数组使用数组直接量是创建数组最简单的方法,在方括号中将数组元素用逗号隔开即可。例如:var empty=[];//没有元素的数组var primes=[2,3,5,7,11];//有5个数值的数组var misc=[1.1,true,"a",];//3个不同类型的元素和结尾的逗号数组直接量中的值不一定要是常量;它们可以是任意的表达式:var base=1024;va...
2018-12-23 20:00:37
1230
原创 js基础--数组方法
join() Array.join()方法将数组中所有元素都转化为字符串并连接在一起,返回最后生成的字符串。可以指定一个可选的字符串在生成的字符串中来分隔数组的各个元素。如果不指定分隔符,默认使用逗号。如以下代码所示:var a=[1,2,3];//创建一个包含三个元素的数组a.join();//=>"1,2,3"a.join("");//=>"1 2 3"a.join(""...
2018-12-22 21:57:46
1547
原创 网页的缩放,适配以及移动的适配!
从布局出发:宽度自适应,常用百分比的方式。由于父级元素采用百分比的布局方式,随着屏幕的拉伸,它的宽度会无限的拉伸。而子元素由于采用了浮动,那么它们的位置也会固定在两端。该宽度自适应在新的时代有了新的方法,随着弹性布局的普及,它经常被flex或者box这样的伸缩性布局方式替代,1.rem rem属性指的是相对于根元素设置某个元素的字体大小。它同时也可以用作...
2018-12-22 00:45:04
12507
4
原创 CSS常见布局整理
本文主要对 CSS 布局中常见的经典问题进行简单说明 涉及到常见的两栏,三栏布局 二列布局的特征是侧栏固定宽度,主栏自适应宽度。三列布局的特征是两侧两列固定宽度,中间列自适应宽度。而二列布局可以看做去掉一个侧栏的三列布局,其布局的思想有异曲同工之妙。两栏布局 float+margin position+margin 两栏(左右)布局常见...
2018-12-02 23:05:47
4801
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅