js 学习笔记03

Js 学习笔记03

201542

16:34

特殊字符:

显示结果        描述        实体名称        实体编号

         空格                  

<        小于号        &lt;        &#60;

>        大于号        &gt;        &#62;

&        和号        &amp;        &#38;

"        引号        &quot;        &#34;

'        撇号         &apos; (IE不支持)        &#39;

                &cent;        &#162;

                &pound;        &#163;

        日圆        &yen;        &#165;

€        欧元        &euro;        &#8364;

§        小节        &sect;        &#167;

?        版权        &copy;        &#169;

?        注册商标        &reg;        &#174;

?        商标        &trade;        &#8482;

×        乘号        &times;        &#215;

÷        除号        &divide;        &#247;

 

如果想给 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-sizecss3提供的一个新特性

    background-size需要两个值,它的类型可以是像素(px)、百分比(%)或是auto,还可以是covercontain

第一个值为背景图的width,另外一个值用于指定背景图上的height,如果只设定1个值,则第2个默认为auto

但当值为covercontain时除外。

    cover:保持图像的宽高比例,将图片缩放到正好完全覆盖定义的背景区域,其中有一边和背景相同。

        如:background-size:cover;

    contain:保持图像的宽高比例,将图片缩放到宽或者高正好适应定义背景的区域,但背景仍在定义的区域之内,

被包含。

        如:background-size:contain;

    length(数值):这里为背景图片设置宽高,图片会直接被拉伸或缩放,不保持原来的比例。如果只设置一个数值,

另外一个值默认为auto,它将按图片原比例来伸缩。

        如:background-size:150px 80px;

    percentage(百分比):这里需要特别注意一下,图片大小不是按背景图片大小的百分数来计算的,而是装载背

景图的元素的百分比来计算。

        如:background-size:40% 60%;

 

    浏览器的兼容性

    支持浏览器:IE(9)firefoxChromeOperaSafari

  

        -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即格林尼治标准时间)

197011日午夜(零时)开始经过的毫秒数(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 0252号,因为Date.UTC()的参数月份是基于0(1月是02月是1,以此类推)

除此之外,new Date("2013,4,2")后台调用Date.parse(),而该方法参数格式ECMA并没定义该接受哪种日期

格式,但实验证明:Date("2013,4,2")这种日期格式在Ie下不能识别,无法返回正确的日期!

推荐的几种兼容各浏览器标准的日期参数写法如下:

"//",如 4/2/2013  (201342"//"的参数格式,也兼容各浏览器,但这种

格式不是标准的推荐写法!)

"英文名月 ,",如April 2,2013  (日同年份间逗号可省略,兼容各浏览器,如果月份不是英

文名月份而是数字,ie下不能识别!)

"英文星期几 英文名月 时:分:秒" (日期的完整表示格式)

所以 表示201342号的正确写法(兼容各浏览器):

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

窗体数据以纯文本形式进行编码,其中不含任何控件或格式字符。

 补充

formenctype属性为编码方式,常用有两种:application/x-www-form-urlencodedmultipart/form-data

默认为application/x-www-form-urlencoded actionget时候,浏览器

x-www-form-urlencoded的编码方式把form数据转换成一个字串(name1=value1&name2=value2...),

然后把这个字串appendurl后面,用?分割,加载这个新的url actionpost时候,

浏览器把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 代码

 


你可能感兴趣的:(js 学习笔记03)