Js 学习笔记03
2015年4月2日
16:34
特殊字符:
显示结果 描述 实体名称 实体编号
空格  
< 小于号 < <
> 大于号 > >
& 和号 & &
" 引号 " "
' 撇号 ' (IE不支持) '
¢ 分 ¢ ¢
£ 镑 £ £
¥ 日圆 ¥ ¥
€ 欧元 € €
§ 小节 § §
? 版权 © ©
? 注册商标 ® ®
? 商标 ™ ™
× 乘号 × ×
÷ 除号 ÷ ÷
如果想给 ECMAScript 中每个本地对象添加新方法,必须在 Object 对象的 prototype 属性上定义它。前面的章节我们讲过,所有本地对象都继承了 Object 对象,所以对 Object 对象做任何改变,都会反应在所有本地对象上。例如,如果想添加一个用警告输出对象的当前值的方法,可以采用下面的代码:
Object.prototype.showValue = function () {
alert(this.valueOf());
};
var str = "hello";
var iNum = 25;
str.showValue(); //输出 "hello"
iNum.showValue(); //输出 "25"
这里,String 和 Number 对象都从 Object 对象继承了 showValue() 方法,分别在它们的对象上调用该方法,将显示 "hello" 和 "25"。
background-size是css3提供的一个新特性
background-size需要两个值,它的类型可以是像素(px)、百分比(%)或是auto,还可以是cover和contain。
第一个值为背景图的width,另外一个值用于指定背景图上的height,如果只设定1个值,则第2个默认为auto,
但当值为cover和contain时除外。
cover:保持图像的宽高比例,将图片缩放到正好完全覆盖定义的背景区域,其中有一边和背景相同。
如:background-size:cover;
contain:保持图像的宽高比例,将图片缩放到宽或者高正好适应定义背景的区域,但背景仍在定义的区域之内,
被包含。
如:background-size:contain;
length(数值):这里为背景图片设置宽高,图片会直接被拉伸或缩放,不保持原来的比例。如果只设置一个数值,
另外一个值默认为auto,它将按图片原比例来伸缩。
如:background-size:150px 80px;
percentage(百分比):这里需要特别注意一下,图片大小不是按背景图片大小的百分数来计算的,而是装载背
景图的元素的百分比来计算。
如:background-size:40% 60%;
浏览器的兼容性
支持浏览器:IE(9)、firefox、Chrome、Opera、Safari。
-moz-background-size:auto||||||cover||contain;
-webkit-background-size:auto||||||cover||contain;
-o-background-size:auto||||||cover||contain;
background-size:auto||||||cover||contain;
去掉 input 聚焦之后的边框:
方法一:(不一定兼容所有的浏览器)
a:focus,input:focus{
-webkit-tap-highlight-color:rgba(0,0,0,0);
-webkit-user-modify:read-write-plaintext-only;
}
方法二:
取消表单项聚焦时产生的黄色边框:
input,button,select,textarea{
outline:none;
}
!important
所有被!important 标记的样式,即使它后来被重写,浏览器也只会采用被标记的那条。
webkit 设置滚动条的样式:
::-webkit-scrollbar{
width:14px;
}
::-webkit-scrollbar-track{
background-color:#bee1eb;
}
::-webkit-scrollbar-thumb{
background-color:#00aff0;
}
::-webkit-scrollbar-thumb:hover {
background-color:#9c3
}
::-webkit-scrollbar-thumb:active {
background-color:#00aff0
}
webkit浏览器css设置滚动条
主要有下面7个属性
::-webkit-scrollbar 滚动条整体部分,可以设置宽度啥的
::-webkit-scrollbar-button 滚动条两端的按钮
::-webkit-scrollbar-track 外层轨道
::-webkit-scrollbar-track-piece 内层滚动槽
::-webkit-scrollbar-thumb 滚动的滑块
::-webkit-scrollbar-corner 边角
::-webkit-resizer 定义右下角拖动块的样式
1、当样式表里font-size<12px时,中文版chrome浏览器里字体显示仍为12px,这时可以用
html{-webkit-text-size-adjust:none;}
call 方法,更改函数执行时的所有者,也就是更改函数内部的 this 引用值,用另一个对象替换调用函数的当前对象。
apply 方法和 call 方法作用相同,但是 apply 只有两个参数,函数的参数以数组的形式传递,而不是像 call
一样直接传递。如:
1、
function showName()
{
alert(this.name);
}
var o = {"name":"小小虾米"};
showName.call(o); // 小小虾米
showName.apply(o); // 小小虾米 此时,apply 和 call 使用方法相同
2、
var a = 1;
function add(b,c)
{
alert(this.a + b + c);
}
var o = {"a":2};
add.call(o,2,3); // 7 call 函数的参数单个传递
add.apply(o,[2,3]); // 7 此时,apply 和 call 使用方法相同,apply 函数的参数以数组的形式传递
中文的 unicode 编码范围:[\u4e00-\u9fa5]
在 html 中 \n 会被当做空格来处理,html 会忽略标记外的换行,因此 document.writeln() 在输出之后并不会换行。
js for in 循环说明:for in 循环会遍历所有可以枚举的属性,也就是 propertyIsEnumerable 返回 true 的属性都是
可以遍历的,返回 false 的属性不可遍历。预定义原型属性是不可枚举的,用户自定义的一般都是可以枚举的。
Date类型使用自UTC(Coordinated Universal Time,国际协调时间;旧时又叫GMT即格林尼治标准时间)
即1970年1月1日午夜(零时)开始经过的毫秒数(ms)来保存日期。
在调用Date构造函数而不传递参数的情况下,新创建的对象自动获得当前日期和时间。为了简化日期计算
过程,ECMAScript提供了2个方法:Date.parse()和Date.UTC()。
实际上可以将表示日期的参数直接传递给Date构造函数,后台会自动调用Date.parse()或Date.UTC()方法;
Date.parse()方法支持日期的字符串参数,而Date.UTC()则不支持字符串参数:
例如:
new Date("2013,4,2") 和 new Date(2013,4,2)是2种不同的日期表示方法,所表示的也不是同一个日期!
解析:
new Date("2013,4,2")会后台调用Date.parse(),返回 Tue Apr 02 2013 00:00:00 GMT+0800 (中国标准时间);
new Date(2013,4,2)会后台调用Date.UTC(),返回 Thu May 02 2013 00:00:00 GMT+0800 (国际协
调时间),注意返回的月份是May 02即5月2号,因为Date.UTC()的参数月份是基于0的(1月是0,2月是1,以此类推)
除此之外,new Date("2013,4,2")后台调用Date.parse(),而该方法参数格式ECMA并没定义该接受哪种日期
格式,但实验证明:Date("2013,4,2")这种日期格式在Ie下不能识别,无法返回正确的日期!
推荐的几种兼容各浏览器标准的日期参数写法如下:
"月/日/年",如 4/2/2013 (2013年4月2号) ("年/月/日"的参数格式,也兼容各浏览器,但这种
格式不是标准的推荐写法!)
"英文名月 日,年",如April 2,2013 (日同年份间逗号可省略,兼容各浏览器,如果月份不是英
文名月份而是数字,ie下不能识别!)
"英文星期几 英文名月 日 年 时:分:秒" (日期的完整表示格式)
所以 表示2013年4月2号的正确写法(兼容各浏览器):
new Date("4/2/2013") 或 new Date("2013/4/2")
new Date("April 2,2013")或 new Date("April 2 2013")
关于 js Date.UTC() 方法:
UTC() 方法可根据世界时返回 1970 年 1 月 1 日 到指定日期的毫秒数。
语法
Date.UTC(year,month,day,hours,minutes,seconds,ms)
参数 描述
year 必需。表示年份的四位数字。
month 必需。表示月份的整数,介于 0 ~ 11。
day 必需。表示日期的整数,介于 1 ~ 31。
hours 可选。表示小时的整数,介于 0 ~ 23。
minutes 可选。表示分钟的整数,介于 0 ~ 59。
seconds 可选。表示秒的整数,介于 0 ~ 59。
ms 可选。表示毫秒的整数,介于 0 ~ 999。
Object.create(proto [, propertiesObject ]) 是E5中提出的一种新的对象创建方式,第一个参数是要继承的原型,如果不是一个子函数,可以传一个null,第二个参数是对象的属性描述符,这个参数是可选的。
propertiesObject 参数的详细解释:(默认都为false)
数据属性
writable:是否可任意写
configurable:是否能够删除,是否能够被修改
enumerable:是否能用 for in 枚举
value:值
访问属性:
get(): 访问
set(): 设置
在Form元素的语法中,EncType表明提交数据的格式 用 Enctype 属性指定将数据回发到服务
器时浏览器使用的编码类型。 下边是说明: application/x-www-form-urlencoded:
窗体数据被编码为名称/值对。这是标准的编码格式。 multipart/form-data:
窗体数据被编码为一条消息,页上的每个控件对应消息中的一个部分。 text/plain:
窗体数据以纯文本形式进行编码,其中不含任何控件或格式字符。
补充
form的enctype属性为编码方式,常用有两种:application/x-www-form-urlencoded和multipart/form-data,
默认为application/x-www-form-urlencoded。 当action为get时候,浏览器
用x-www-form-urlencoded的编码方式把form数据转换成一个字串(name1=value1&name2=value2...),
然后把这个字串append到url后面,用?分割,加载这个新的url。 当action为post时候,
浏览器把form数据封装到http body中,然后发送到server。 如果没有type=file的控件,
用默认的application/x-www-form-urlencoded就可以了。 但是如果有type=file的话,就要用
到multipart/form-data了。浏览器会把整个表单以控件为单位分割,并为每个部分
加上Content-Disposition(form-data或者file),Content-Type(默认为text/plain),
name(控件name)等信息,并加上分割符(boundary)。
判断客户系统的类型:
/iPhone/.test(navigator.userAgent)
/iPad/.test(navigator.userAgent)
/Android/.test(navigator.userAgent)
/Windows Phone/.test(navigator.userAgent)
关于浏览器的 console 对象:
console.log("控制台输出信息1")
console.clear(); // 清空控制台
console.log("控制台的信息清除成功"); // 控制台的信息清除成功
console.log("%o",{"name" : "wx"}); // 输出对象的所有属性
console.dir({"name" : "wx"}); // 输出对象的所有属性
console.dirxml(dom 对象); // 在控制台答应 dom 对象的 html 代码