JavaScript 数据类型
JavaScript有以下几种类型:字符串(String)、数字(Number)、布尔(Boolean)、数组(Array)、对象(Object)、空(Null)、未定义(Undefined)。
JavaScript 拥有动态类型
JavaScript 拥有动态类型。这意味着相同的变量可用作不同的类型:
var x; // x 为 undefined
var x = 5; // 现在 x 为数字
var x = "John"; // 现在 x 为字符串
JavaScript 字符串
字符串是存储字符(比如 "Bill Gates")的变量。
字符串可以是引号中的任意文本。您可以使用单引号或双引号:
var carname="Volvo XC60";
var carname='Volvo XC60';
可以在字符串中使用引号,只要不匹配包围字符串的引号即可:
var answer="It's alright";
var answer="He is called 'Johnny'";
var answer='He is called "Johnny"';
JavaScript 数字
JavaScript 只有一种数字类型。数字可以带小数点,也可以不带:
var x1=34.00; // 使用小数点来写
var x2=34; // 不使用小数点来写
极大或极小的数字可以通过科学(指数)计数法来书写:
var y=123e5; // 12300000
var z=123e-5; // 0.00123
JavaScript 布尔
布尔(逻辑)只能有两个值:true 或 false。
var x=true;
var y=false;
JavaScript 数组
创建数组
var cars=new Array();
cars[0]="Saab";
cars[1]="Volvo";
cars[2]="BMW";
var cars=new Array("Saab","Volvo","BMW");
var cars=["Saab","Volvo","BMW"];
数组下标是基于零的,所以第一个项目是 [0],第二个是 [1],以此类推。
JavaScript 对象
对象由花括号分隔。在括号内部,对象的属性以名称和值对的形式 (name : value) 来定义。属性由逗号分隔:
var person={firstname:"John", lastname:"Doe", id:5566};
上面例子中的对象 (person) 有三个属性:firstname、lastname 以及 id。
空格和折行无关紧要。声明可横跨多行:
var person={
firstname : "John",
lastname : "Doe",
id : 5566
};
对象属性有两种寻址方式:
name=person.lastname;
name=person["lastname"];
Undefined 和 Null
Undefined 这个值表示变量不含有值。
可以通过将变量的值设置为 null 来清空变量。
cars=null;
person=null;
声明变量类型
当您声明新变量时,可以使用关键词 "new" 来声明其类型:
var carname=new String;
var x= new Number;
var y= new Boolean;
var cars= new Array;
var person= new Object;
JavaScript 变量均为对象。当您声明一个变量时,就创建了一个新的对象。
提示:JavaScript具有隐含的全局概念,意味着你不声明的任何变量都会成为一个全局对象属性。
案例
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script type="text/javascript">
//var
// var username;
// var password="123456";
// console.log(username,password)
//修改值
// username = "cali"
// password = 123456;
// console.log(username,password);
//const 在声明的时候必须给一个初始值
// const username;
const username = "root";
const password = "123456";
console.log(username,password)
//不能重新赋值
// username = "cali";
console.log(username,password)
//基本的数据类型
//布尔 --》逻辑值 true,false
var flag = true;
console.log(flag,typeof(flag));
flag = false;
console.log(flag,typeof(flag));
//number --》数字型 :整数和小数
var num = 1;
console.log(num,typeof(num));
num = 1.1;
console.log(num,typeof(num1));
//数字的四则运算
console.log(num/10,num*10,num+10,num-10)
// 1.1 + 10 -> 1.110 字符串的拼接
console.log(num+'10')
//数字的比较运算 --》布尔值 --》true,false
console.log(num>10,num==10)
// = 赋值 == 比较的是值 ===比较的是值和类型
console.log(num=='1.1',num==='1.1')
//字符串类型
var s1 = "Volvo";
var s2 = "Volvo",s3 = "Volvo"
console.log(s1,typeof(s1),s2,typeof(s2))
//字符串的操作
//字符串的拼接
console.log(s1+s2)
console.log("length查看字符串的长度:",s1.length);
//下标从0开始
console.log("charAt(2)查看指定下标的字符:",s1.charAt(2));
console.log("查看指定下标的字符:",s1[2]);
//查找字符串
//indexOf 第一次出现的位置的下标值
var s4 = "I am a teacher. You are students. I am happy";
console.log("查找am:",s4.indexOf("am"));
console.log("查找am:",s4.indexOf("am",5));
//split
console.log("分割字符串:",s4.split(" "));
//undefined
var u;
console.log("u:",u,typeof(u));
function test1(){}
console.log("function:",test1());
console.log("no var:",typeof(aa));
console.log("不存在的属性:",s1.length0);
//数据类型的转换
console.log(111+"10");
console.log(111+Number("10"));
console.log(111+10);
console.log(String(111)+String(10));
//false 对象的值表示没有:0,0.0,"",[]
//false,true,false
console.log(Boolean(0),Boolean('0'),Boolean(""));
console.log(Boolean(" "));
//Object -->Array,Dict
//Array
var array = ['a','b','c','d'];
console.log(array,typeof(array));
console.log(array.toString(),typeof(array.toString()));
console.log(String(array),typeof(String(array)));
//取值
console.log(array[1]);
var s5 = String(array);
// s5 --> array
console.log(s5.split(','));
//array,string?
console.log(s5);
// 有一些函数执行完可能会修改对象本身,有一些函数将结果返回
//Dict
var dict = {"kb":"科比"};
console.log(dict,typeof(dict));
console.log(dict["kb"],dict.kb);
//能转,但结果不理想 [object object]
console.log(dict.toString());
console.log(String(dict));
</script>
</head>
<body>
</body>
</html>