首页 > 代码库 > JavaScript学习笔记

JavaScript学习笔记

W3C标准:结构标准(xHTML)、表现标准(CSS)、动作标准(JS)
CSS四种样式:行内样式 > 内嵌样式 > 链接样式 > 导入样式。
margin:上 右 下 左
margin:20px 0;则和margin:20px 0 20px 0;是等价的

javascript 三个组成部分:
ECMAScript(语言功能、语法、结构等)
DOM:文档对象模型(将网页映射成多层节点模型)
BOM:浏览器对象模型(浏览器的互操作)
XHTML与HTML:
XHTML是按照xml的语法规范对html的进一步规范,通常使用CDATA来实现html与XHTML的兼容

<script>放在<head>与放在<body>的区别:
放在head内,会在加载页面之前加载<script>脚本,延长了界面的加载时间
放在body内,通常是放在</body>结束之前,提升页面加载效率。
浏览器处理<script>标签是顺序的,若需改变加载顺序,利用<script>提供的defer和asyn属性

defer:用于外部文件,表示立即下载,但可以延迟加载执行,通常一个文件中只有一个defer属性
asyn: 异步执行,不能保证文件的加载顺序

ECMAScript作为JavaScript实现的标准规范,描述了实现过程中包含的语法、操作符、数据类型、内置功能等
ECMA-262是ECMAScript的版本号

ECMAScript大小写敏感

关于变量:
变量的定义通常使用var操作符执行,若在方法内省略var 操作符可被当做是全局变量使用,但不推荐此方式
变量要有自己的作用域
对为申明过的变量只能做一项操作——typeof()

ECMAScript的五种基本类型:undefined、Null、Boolean、String、Number
ECMAScript的一种复杂类型:Object

Null类型有唯一值:null
null值代表一个空对象指针,若需要创建一个对象而不急于赋值时,可将改变量赋值为null。
undefined派生于null,因此undefined==null成立

Boolean类型只有两个值 true/false(必须小写)

Number类型包括浮点数类型和整数类型(二、八、十、十六进制),在进行数值运算时八进制和十六进制都会转换为十进制
数值转换方法:Number()/parseInt()
Number("hello") //NaN
Number("") //0
Numer(true)//1
Number("000011")//11
*******************************
parseInt("124red")//124
parseInt("")//NaN
parseInt("0xA")//10
parseInt("070")//56
parseInt("70")//70
parseInt(param,基数)//基数用于判断转换为多少进制
*********************************
parsefloat()同parseInt()规则一样,从第一个位置开始解析参数直到该参数不为数字为止结束,但它仅有一个参数,没有基数

NaN:not a Number 非数值类型,NaN与任何值都不等,包括其本身
*************************************
String类型转换:toString()
每个字符串都有一个toString()方法,除了undefined和null
若要指定基数可以在toString方法中加入参数toString(2/8/10/16)
若要对undefined和null值进行String类型转换(也就是要输出“undefined”和“null”字符)可使用String()函数,它可以对任何类型进行转换
*****************
Object类型
var o = new Object();
constructor:object()//构造函数
hasOwenProperty(propertyName)//检查属性是否在当前对象实例中
isProtypeOf(object)//检查传入的对象是否是传入对象的原型(实例)?
propertyIsEnumerable(propertyName)//检查给定的属性是否能够使用for-in语句来枚举
toLocaleString()//返回对象的字符串表示
toString()
valueOf()
————————————————————————————————————————————————————————————
关于比较:
相等和不相等(== 、!=):先转换再比较
(boolean,Number)//boolean转换为数值类型后进行比较
(String,Number)//string转换为数值类型再进行比较
(Object,Number)//利用valueOf()将object转换为基本类型后再进行比较
(Object,Object)//两个对象的比较是比较两者是否指向同一个对象
注意:NaN和undefined的进行比较时不能做任何转换 两者相等

将字符串变成数值:使用-号
将数值变成字符串:使用+号
===:1、比较类型 2、比较数值
typeof(null):object//基础类型及function检测,但不能检测null
instanceof//自定义对象和原生对象,在iframe和window间检测失效
Object.prototype.toString//内置对象和基础类型,对null和undefiened有浏览器兼容性问题

for-in:for(property in expression)

定义函数时的命名参数只是为了提供便利不是必须,再调用函数时可以不传参数或者不按指定参数个数进行传递
function sayHi(name,message){
statement;
}
sayHi(){
alert(aregument[0]);//aregument[0]相当于name
alert(aregument[1]);//aregument[1]相当于message
aregument[0]=“lisa”;//ECMAScript中只有值传递,这里仅仅是对传入的参数进行值修改,并不会对原函数定义的name进行修改
}

ECMAScript只有覆盖,没有重载
————————————————————————————————————————————

 

JavaScript学习笔记