一、javascript的基本类型:
1.number 2.string 3.object 4.boolean 5.undefined 6.null
对应的例子有:
1. alert(typeof 12341)
2.alert(typeof "hello")
3.var a = null; alert(a);
4.var b; alert(b);
5.var c = document.getElementById("div1") div1不存在,此时alert(typeof c)为null类型
上例中 a和b的值都是null但是a的类型为object b的类型为undefined
二、js的布尔判断
var str;
if(str){ alert("true") }
str在一下情况下为true
str为字符串型但除了空字符串,str为数字除了0,str为object
null和undefined都是false
/*
演示基本
数据类型
*/
function f1(){
var i = 100;
i = "hello js";
i = 100.08;
//alert(typeof i);
var str = 'hello java';
var flag = false;
//alert(typeof flag);
var t = null;
//alert(typeof t);
var t2;
alert(typeof t2);
}
/*
布尔类型
以下几种情况,boolean值为true
a,字符串,只要不为空字符
b,数字只要非0
c,对象
null和undefined为false
*/
function f2(){
//var str="abc";
//var str = 100;
//var str = new Object();
var str;
if(str){
alert("true!");
}else{
alert("false");
}
}
/*
数据类型的转换
parseInt()
parseFloat()
*/
function f3(){
//var str = "123.03";
//var i = parseInt(str) + 100;
//var i = parseFloat(str) + 100;
//alert(i);
//var str2 = "12a3";
//var i = parseInt(str2) + 100;
//alert(i);
var str3 = "123a";
//isNaN():如果为非数字,返回true
if(isNaN(str3)){
//alert('非数字');
}else{
//alert('数字');
}
var i = 100;
var str4 = i.toString() + "234";
alert(str4);
}
/*
比较操作
==:比较值
===:比较类型和值
*/
function f4(){
var str1 = "123";
var str2 = "123";
var str3 = 123;
if(str1 == str2){
//alert('str1等于str2');
}
if(str1 === str3){
//alert('str1等于str3');
}
var s1 = null;
var s2;
alert(s1 == s2);
}
三、有关js的全局变量与局部变量
var i = 1声明在script中或者语句块中都都为全局变量
j = 2声明在函数中没有用var声明也是全局变量
只有var j=3声明在函数中才为局部变量
代码如下:
var i = 1;//全局变量
function f1(){
//alert(i);
var j = 100;
//在函数内部,使用var声明的变量是一个局部变量
j2 = 100;//此时,是全局变量
}
f1();
//alert(j2);
//没有语句块作用域
for(i=0;i<100;i++){
var j3 = 100;
}
alert(j3);
四、数组问题
数组的声明方式有两种:
1.是var arr = new Array(); 然后arr[0],arr[1]赋值进去
2.是var arr = [1,3,5];是以中括号括起来的
数组的常规用法如下:
//创建数组的第一种方式
function f1(){
var arr = new Array();
arr[0] = 1;
arr[3] = '2';
alert(arr.length);
}
//创建数组的第一种方式
function f2(){
var arr = [1,2,4];
alert(arr.length);
}
//创建二维数组
function f3(){
var arr = new Array;
arr[0] = [3,1,22];
arr[1] = [8,13];
for(i=0;i<arr.length;i++){
for(j=0;j<arr[i].length;j++){
alert(arr[i][j]);
}
}
}
//数组对象的常用方法
function f4(){
var arr = [3,4,5];
//alert(arr.toString());
var arr1 = [11,2,3];
var arr2 = [99,12];
var arr3 = arr1.concat(arr2);//形成一个新的数组
//alert(arr1);
var arr4 = [3,4,11];
var str = arr4.join('|');
//alert(str);
var arr5 = [5,3,2,1];
var arr6 = arr5.reverse();//没有形成新的数组
//alert(arr5);
var arr7 = [11,22,12,90,33];
var arr8 = arr7.slice(2,4);//不包括4,形成新的数组
//alert(arr7);
}
//数组的排序
function f5(){
var arr = [19,24,522,32,87];
//var arr = ['bbbc','ab','ddc'];
arr.sort(function(a,b){
//return -(a.length - b.length);
return b - a;
});
alert(arr);
}
//堆栈
function f6(){
var arr = [22,11,33];
arr.push(66,99);
var obj = arr.pop();
alert(obj);
alert(arr.length);
}
//队列
function f7(){
var arr = [22,11,33];
var obj = arr.shift();
obj = arr.shift();
alert(obj);
alert(arr.length);
}