javascript的基本数据类型
javascript是弱类型脚本语言,声明变量时无须指定变量的数据类型。
javascript总共有5种基本数据类型。分别是:
1.数值类型: 包含整数或浮点数。
2. 布尔类型:只有true和false两个值。
3. 字符串类型:字符串变量必须用引号括起来,引号可以是单引号也可以是双引号。
4. undefined类型:专门用来确定一个可以创建但是没有初值的变量。
5. null类型:用于表明某个变量的值为空。
数值类型:
<script type="text/javascript">
var a = 3.12e1;
var b = 45.0;
var c = .34e4;
var d = .24e-2;
</script>
字符串类型:
<script type="text/javascript">
var a = "Hello java";
var b = 'Hello php';
</script>
indexOf()为搜索目标字符串searchString出现的位置。
lastIndexOf()搜索目标字符串最后一次出现的位置。
<script type="text/javascript">
var a = "hellojavascript";
var b = a.indexOf("llo");
var c = a.indexOf("llo",3);
var d = a.lastIndexOf("a");
alert(b + "\n" + c + "\n" + d);
</script>
substring()从start(包括)索引处,截到end(不包括)索引处,不截取end索引处的字符。
slice()与substring()功能基本一致,区别是可以接受负数作为索引,负数作为索引时,从字符串右边开始计算索引。
<script type="text/javascript">
var a = "hellojavascript";
var b = a.slice(0,4);
var c = a.slice(2,4);
var d = a.slice(4);
var e = a.slice(-3,-1);
</script>
布尔类型:
布尔类型的值只有两个:true和false
<script type="text/javascript">
if(navigator.cookieEnabled){
alert("浏览器支持使用cookie");
}
else{
alert("浏览器禁用cookie");
}
</script>
undefined和null:
<script type="text/javascript">
var x,y=mull;
if(x==undefined){
alert("声明变量后值默认为undefined");
}
if(x==null){
alert("声明变量后值默认为null");
}
if(x==y){
alert("x(undefined)==y(null)");
}
if(String.xyz === undefined){
alert("不存在的属性值默认为undefined");
}
</script>
创建函数的三种方式
1.定义命名函数:
定义命名函数的语法格式为:
function functionName(parameter-list){
statements
}
实例;
<script type="text/javascript">
hello('yeeku');
function hello(name){
alert(name + ",你好");
}
</script>
2.定义匿名函数:
定义命名函数的语法格式为:
function(parameter-list){
statements
}
实例:
<script type="text/javascript">
var f = function(){
document.writeln('匿名函数<br>');
document.writeln('你好'+name);
};
f('yeeku');
</script>
3.使用Function类匿名函数:
<script type="text/javascript">
var f = new Function('name',"document.writeln('Function定义的函数<br>');"
+ "document.writeln('你好' + name);");
f('yeeku');
</script>
调用函数的三种方式:
直接调用函数 | 直接以函数附加的对象作为调用者,在函数后括号内传入参数来调用函数 |
以call()方法调用函数 | 为了动态的调用函数,需要用call()方法来调用 |
以apply()方法调用函数 | 与call()方法功能基本类似,都能动态调用函数 |
1.直接调用函数:
<script type="text/javascript">
//调用window对象的alert()方法
window.alert("测试");
//调用p对象的walk方法
p.walk()
</script>
2.以call()方法调用函数
调用者.函数(参数1,参数2…) = 函数.call(调用者,参数1,参数2)
<script type="text/javascript">
var each = function(array,fn){
for(var index in array){
fn.call(each,index,array[index]);
}
}
each([4,20,3],function(index,ele){
document.write("第"+index+"个元素是:"+ele+"<br>");
});
</script>
3.以apply()方法调用函数:
<script type="text/javascript">
var myfun = function(a,b){
alert("a的值是:"+a+"b的值是:"+b);
}
myfun.call(window,12,33);
myfun.apply(window,[12,33]);
var example = function(num1,num2){
myfun.apply(this,arguments);
}
example(20,40);
</script>
定义对象的三种语法:
创建对象 |
使用new关键字调用构造器定义对象 |
使用Object类定义对象 |
使用JSON语法创建对象 |
1.使用new关键字调用构造器定义对象:
<script type="text/javascript">
function Person(name.age){
this.name = name;
this.age = age;
}
var p1 = new Person();
var p2 = new Person('yeeku',29);
document.writeln(p1.name + p1.age+"<br>");
document.writeln(p2.name + p2.age+"<br>");
</script>
2.使用Object类定义对象:
<script type="text/javascript">
var myObj = new Object();
myObj.name = 'yeeku';
myObj.age = 29;
document.writeln(p1.name + p1.age+"<br>");
</script>
3.使用JSON语法创建对象:
<script type="text/javascript">
person = {
name : 'yeeku',
gender: 'male',
son:{
name:'nono',
gender:1
},
info : function(){
document.writeln(this.name + this.age);
}
}
</script>
创建类以及继承的标准写法:
定义javascript函数时,也就得到一个同名的类,而且该函数就是该类的构造器
下面我们通过一个例子实现创建类
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-=Type" Content="text/html;charset = utf-8" />
<title>swutch and ifelse 语句</title>
<script type="text/javascript">
//定义一个Person类
function Person(name,age){
this.name = name;
this.age = age;
this.info = function(){
document.writeln("姓名:" + this.name);
document.writeln("年龄:" + this.age);
}
}
var p1 = new Person('yeeku',29);
p1.info();
Person.prototype.walk = function(){
document.writeln(this.name + ' abcd...0<br>');
}
document.writeln("<hr />");
var p2 = new Person('leegang',30);
p2.info();
document.writeln("<hr />");
p2.walk();
document.writeln("<hr />");
p1.walk();
</script>
</head>
<body>
</body>
</html>
继承的标准写法:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-=Type" Content="text/html;charset = utf-8" />
<title>swutch and ifelse 语句</title>
<script type="text/javascript">
function Person(name,age){
this.name = name;
this.age = age;
}
//通过prototype方法为Person类定义一个sayHello函数
Person.prototype.sayHello = function(){
console.log(this.name+"向您打招呼!");
}
var per = new Person("牛魔王",22);
per.sayHello();
function Student(name,age,grade){
//继承Person类
Person.call(this,name,age);
this.grade = grade;
}
//继承Person.prototype方法
Student.prototype = new Person();
//通过prototype方法为Student类定义一个intro函数
Student.prototype.intro = function(){
console.log("%s是个学生,读%d年纪",this.name,this.grade);
}
var stu = new Student("孙悟空",5);
//stu调用Person类的方法,实现继承
stu.sayHello();
//stu调用自己的方法
stu.intro();
</script>
</head>
<body>
</body>
</html>