数据类型
-
JavaScript数据类型
- 值类型(基本类型):
- 字符串(String)、数字(Number)、布尔(Boolean)、对空(Null)、未定义(Undefined)、Symbol
- 注:Symbol 是 ES6 引入了一种新的原始数据类型,表示独一无二的值.
- 字符串(String)、数字(Number)、布尔(Boolean)、对空(Null)、未定义(Undefined)、Symbol
- 引用数据类型:
- 对象(Object)、数组(Array)、函数(Function)
- 值类型(基本类型):
-
JavaScript拥有动态类型:
- JavaScript 拥有动态类型。这意味着相同的变量可用作不同的类型:
var x; // x 为 undefined var x = 5; // 现在 x 为数字 var x = "John"; // 现在 x 为字符串
- JavaScript 拥有动态类型。这意味着相同的变量可用作不同的类型:
-
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 只有一种数字类型。数字可以带小数点,也可以不带:
-
JavaScript布尔:
-
布尔(逻辑)只能有两个值:true 或 false。
var x=true; var y=false;
-
-
JavaScript数组
- cars 的数组 :
var cars=new Array(); cars[0]="Saab"; cars[1]="Volvo"; cars[2]="BMW";
- (condensed array):
var cars=new Array("Saab","Volvo","BMW");
- (literal array):
var cars=["Saab","Volvo","BMW"];
- 注意 数组下标是基于零的,所以第一个项目是 [0],第二个是 [1]
- cars 的数组 :
对象
-
JavaScript对象:
-
对象由花括号分隔。在括号内部,对象的属性以名称和值对的形式 (name : value) 来定义。属性由逗号分隔:
-
var person={firstname:"John", lastname:"Doe", id:5566};
-
空格和折行无关紧要。声明可横跨多行:
var person={ firstname : "John", lastname : "Doe", id : 5566 };
-
-
对象属性有两种寻址方式:
name=person.lastname; name=person["lastname"];
-
-
Undefined和Null
- Undefined 这个值表示变量不含有值。
- 可以通过将变量的值设置为 null 来清空变量
-
声明变量类型
-
声明新变量时,可以使用关键词 “new” 来声明其类型:
var carname=new String; var x= new Number; var y= new Boolean; var cars= new Array; var person= new Object;
-
注意: JavaScript 变量均为对象。当您声明一个变量时,就创建了一个新的对象。
-
-
数组补充笔记
-
数组有四种方式:
var arr1 = new Array('a', 'b', 'c'); //这是一个预定义的数组,在创建时初始化 var arr2 = ['a', 'b', 'c' ]; //同样是在创建时初始化,但是这种创建更为简洁直观 var arr3 = new Array( ); var arr4 = [ ]; //这两种是创建空的数组
-
对象的创建,一般推荐使用
var people = {name : 'Tom', age : 21 , eat : function(){ } }
-
也可先创建对象再追加属性和方法
var people = new Object(); people.name = 'Tom'; people.age = 21; people.eat = function(){ }
-
-
最常用的对象创建方式:
-
第一种:
function Demo(){ var obj=new Object(); obj.name="张思"; obj.age=12; obj.firstF=function(){ } obj.secondF=function(){ } return obj; } var one=Demo(); // 调用输出 document.write(one.age);
-
第二种:
function Demo(){ this.name="张思"; this.age=12; this.firstF=function(){ } this.secondF=function(){ } } var one=new Demo // 调用输出 document.write(one.age);
-
-
判断对象是不是数组
-
1、使用 isArray 方法
var cars=new Array(); cars[0]="Saab"; cars[1]="Volvo"; cars[2]="BMW"; // 判断是否支持该方法 if (Array.isArray) { if(Array.isArray(cars)) { document.write("该对象是一个数组。") ; } }
-
2、使用 instanceof 操作符
var cars=new Array(); cars[0]="Saab"; cars[1]="Volvo"; cars[2]="BMW"; if (cars instanceof Array) { document.write("该对象是一个数组。") ; }
-
就算变量定义的是数组格式,typeof 返回的数据类型还是 object :
var cars=new Array(); cars[0]="Saab"; cars[1]="Volvo"; cars[2]="BMW"; document.write(typeof cars); // object
-
-
注意 undefined 和 null 都是小写,并且。
var x,y; if(x == null){ document.write(x); } if(y == undefined){ document.write(y); }
函数
-
函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块
-
JavaScript函数语法:
- 函数就是包裹在花括号中的代码块,前面使用了关键词 function
- 可以在某事件发生时直接调用函数(比如当用户点击按钮时),并且可由 JavaScript 在任何位置进行调用
- 注意: JavaScript 对大小写敏感。关键词 function 必须是小写的,并且必须以与函数名称相同的大小写来调用函数
-
调用带参数的函数
-
您可以发送任意多的参数,由逗号 (,) 分隔
-
<p>点击这个按钮,来调用带参数的函数。</p>
<button "myFunction('Harry Potter','Wizard')">点击这里</button>
<script> function myFunction(name,job){ alert("Welcome " + name + ", the " + job); } </script>
-
-
带有返回值的函数
-
使用 return 语句时,函数会停止执行,并返回指定的值
-
function myFunction() { var x=5; return x; }
-
function myFunction(a,b)
{ return a*b;
}
document.getElementById("demo").innerHTML=myFunction(4,3);
-
-
仅仅希望退出函数时 ,也可使用 return 语句。返回值是可选的:
function myFunction(a,b) { if (a>b) { return; } x=a+b }
-
-
局部JavaScript变量
- 在 JavaScript 函数内部声明的变量(使用 var)是局部变量,所以只能在函数内部访问它。(该变量的作用域是局部的)
- 只要函数运行完毕,本地变量就会被删除
-
全局JavaScript变量
- 在函数外声明的变量是全局变量,网页上的所有脚本和函数都能访问它
-
JavaScript变量的生存期
-
JavaScript 变量的生命期从它们被声明的时间开始。
局部变量会在函数运行以后被删除。
全局变量会在页面关闭后被删除
-
-
向未声明的JavaScript变量分配值
-
如果您把值赋给尚未声明的变量,该变量将被自动作为 window 的一个属性。
-
carname="Volvo";
将声明 window 的一个属性 carname。 -
非严格模式下给未声明变量赋值创建的全局变量,是全局对象的可配置属性,可以删除。
-
var var1 = 1; // 不可配置全局属性 var2 = 2; // 没有使用 var 声明,可配置全局属性 console.log(this.var1); // 1 console.log(window.var1); // 1 delete var1; // false 无法删除 console.log(var1); //1 delete var2; console.log(delete var2); // true console.log(var2); // 已经删除 报错变量未定义
-
-
笔记
-
作为参数的的变量称为形参,带入的参数称为实参。
function myFunction(a,b){ return a*b;} // 形参 document.getElementById("demo").innerHTML=myFunction(4,3); // 实参
-
使用 return 语句时,函数会停止执行,并返回指定的值。
sayHi(); function sayHi(name,message){ document.write("return 语句执行前。"); return; alert("hello" + name +"," + message);//这一行永远不会被调用 }