变量命名
一种区分大小写的语言,因此变量名称 myCounter 和变量名称 mYCounter 是不一样的,变量的名称可以是任意长度,
创建变量名称遵守的规则
1.第一个字符可以是大写或者小写的字母或者下划线,
2.后续字母可以是字母、数字、下划线
3.变量名称不能是保留字
变量初始化,但不想给特殊值可以复制为null,如果不赋值,一般值诶undefined
强制转换 parseInt parseFloat
数据类型
基本类型:字符串,数值,布尔
复合类型:数组,对象
特性类型: null,undeifined
特殊运算符记忆
删除delete
delete expression
删除对象的属性或者删除数组元素
typeof运算符
返回一个表达式的数据类型字符串、
typeof(expression)
typeof 返回值有六种可能: "number," "string," "boolean," "object," "function," 和 "undefined."
instanceof
返回布尔值,指出对象是否是特定类的一个实例
result = object instanceof class
判断object是不是class的一个实例,是返回true,不是返回false
new
创建一个新对象
my_object = new Object();
in
测试对象是否存在该属性
result = property in object
控制程序的流程
for...in循环
提供了一种特别的循环方式来遍历一个对象的所有用户定义的属性或者一个数组的所有元素
<script>
var myObject = new Object();
myObject.name='zhangsan';
myObject.sex='nan';
myObject.age='100';
for( prop in myObject ){
alert('this is '+prop+':'+myObject[prop]);
}
</script>
有用的eval()函数,可以对参数字符串求值
自定义对象
要创建自己的对象实例,必须首先为其定义一个构造函数。构造函数创建一个新对象,赋予对象属性,并在合适的时候赋予方法。例如,下面的示例为 pasta 对象定义了构造函数。注意 this 关键字的使用,它指向当前对象。
<script>
function myObject(name,age,sex){
this.name = name;
this.age = age;
this.sex= sex;
this.strFun = printStr;
}
function printStr(){
alert(this.name+'==='+this.age+'==='+this.sex);
}
var my = new myObject('zhangsan','100','nan');
alert(my.age)
my.strFun();
</script>
内部对象
Array、Boolean、Date、Function、Global、Math、Number、Object、RegExp、Error 以及 String 对象
isNaN 判断是否为非数字 isNnN(‘abc’) 返回true
高级javascript操作
使用构造函数来创建对象
构造函数是一个函数,调用它来实例并初始化特殊类型的对象,可以使用new关键字调用构造函数
var myOjbect = new Object();
编写构造函数
可以使用new运算符结合预定义的构造函数如Object()、Date()、Function()来初始化对象,
function Circle(x,y,radius){
this.x = x;
this.y = y;
this.radius = radius;
}
为构造函数
使用原型来创建对象
在编写构造函数是,可以使用原型对象的属性来创建继承属性和共享方法。原型属性和方法将按引用复制给类的每个对象
对原型类的扩展来满足自己,工作要求
例如扩展String原型对象
String.prototype.alertStr = function (){
alert('原型的扩展');
}
var str = new String();
str.alertStr();
递归操作
function factorial(number){
number = Math.floor(number);
if( number < 0 ){
return -1;
}else if( number == 0 ){
return 1;
}else{
return number*factorial(number-1);
}
}
alert(factorial(5)
变量范围
全局和局部变量,在函数外部为全局,函数内部为局部
消息框
alert('提示信息...'); 警告消息框
confirm('确认信息...'); 确认消息框
prompt('标题信息','默认值...');提示消息框
RegExp 对象
函数是返回匹配的结果
function matchDemo(){
var s;
var re = new RegExp("d(b+)(d)","ig");
var str = "cdbBdbsbdbdz";
var arr = re.exec(str);
s = "$1 contains: " + RegExp.$1 + "\n";
s += "$2 contains: " + RegExp.$2 + "\n";
s += "$3 contains: " + RegExp.$3;
return(s);
}
alert(matchDemo());
index 返回第一个成功匹配的位置
input 返回执行规范要查询的字符串
正则表达式对象
[flags]
i 忽略大小写
g 全文查找出现的所有pattern
m 多行查找
语法1
re = /pattern/[flags]
语法2
re = new RegExp("pattern","[flag]")
Pattern
必选项。要使用的正则表达式模式。如果使用语法 1,用 "/" 字符分隔模式。如果用语法 2,用引号将模式引起来。
当预先知道查找字符串时用语法 1。当查找字符串经常变动或不知道时用语法 2,比如由用户输入得到的字符串。
例子
function MathDemo(){
var r,re;
var s = 'this is spain falls';
re = new RegExp("spain","i");
r = s.match(re);
return (r);
}
prototype属性
返回对象类型原型的引用, 扩展原始对象的属性和方法
function array_max(){
}
Array.prototype.max = array_max;
var x = new Array(1,2,3,4,5,6);
var y = x.max();
constructor 属性
表示创建对象的函数 ,返回创建对象的函数
constructor 属性保存了对构造特定对象实例的函数的引用。
返回比数组中所定义的最高元素大 1 的一个整数。 length 属性(Array)
返回为函数所定义的参数个数。 length 属性(Function)
返回 String 对象的长度。 length 属性(String)
try...catch...finally
try{
判断出来如果有异常就抛出
throw '异常';
}catch(ex){
输出异常信息 ex;
}finally{
//始终被执行
}
with 语句
为语句设定默认对象。为了简化代码,指定默认对象
with(Math){
var x = 100*random();
var y = floor(10.111);
}
alert(x);
alert(y);
使用对象字面量的方法创建对象
var object = {
name:"zhangsan",
age:'100',
sex:'nan',
info:function(str){
alert(Function.length)
alert(this.name+','+str)
}
}; //使用对象字面量的方法创建对象
object.info('=======');