JavaScript重点笔记

JavaScript笔记总结

1.变量

JavaScript 是弱类型语言。

变量类型是动态的,可以存放任意类型的数据。

语法:var 变量名 = 初始化值;

var i = 1;
var f = 1.1f;
var s = "abc"

命名规则

  • 变量必须以字母开头
  • 变量也能以 $ 和 _ 符号开头
  • 变量名称对大小写敏感(y 和 Y 是不同的变量)
  • 不允许使用js关键字和保留关键字

注意:所有变量的声明,会自动提升到代码(当前作用域)的最顶部


2.数据类型

2.1基本数据类型

基本数据类型包括:number,string,boolean,null,undefined

数字

JS只有number一种数字类型。数字可以带小数点,也可以不带:

var a = 1;     
var b = 1.0; 

布尔值

布尔只能有两个值:true 或 false:

var x = true;
var y = false;

字符串

字符串可以是引号中的任意文本。可以使用单引号或双引号:

var a = "hello";
var a = 'hello';

null

表示空,不存在。

从逻辑角度上看,null是一个空的对象指针。而这也正是使用typeof操作符检测null值,会返回“object”的原因。

undefined

表示未定义。

注意:

  • 声明一个变量,但未赋值,输出则是undefined
  • 函数没有明确返回值,如果用变量接受,输出则是undefined
  • undefine + number = NaN

2.2引用数据类型

对象类型Object type,比如:Object 、Array 、Function 、Data等,以及自定义的。

object

对象,是一组数据和功能(函数)的集合。可以用new操作符后跟要创建的对象类型的名称来创建。也可以用字面量表示法创建。

var person = {name:'zhangsan'} // 方式1: 字面量的方式
var obj1= new Object();        // 方式2: 构造方法

3.函数

3.1函数的定义

定义方式一

语法:function 函数名(参数列表){ 函数体;}

function study(){
    console.log("hello");
}

定义方式二

语法:var 函数名 = function(参数列表){ 函数体;}

var study = function(){
    console.log("hello");
}

定义方式三

语法:参数跟函数体都必须在字符串内,Function的F必须大写new Function(arg1, arg2, …, argN, function_body);

var study = new Function("name", "time","console.log(name+'每天学习'+time+'分钟');console.log('继续保持')");

3.2函数的调用

调用方式一
语法: 函数名(参数值)

study("zhangsan",180);

调用方式二

语法: 函数名.call(调用对象,参数值)

study.call(this,"zhangsan",180);

调用方式三

参数需要封装到数组中

语法: 函数名.apply(调用对象,参数值数组)

study.apply(this,['zhangsan',180] );

调用方式四

bind会返回新的函数,需要调用才会执行,所以后面需要(),其它跟call用法一样。

语法: 函数名.bind(调用对象,参数值)()

study.bind(this,"zhangsan",10 )(); 

3.3 函数参数

JS中的参数都会封装到arguments中,在函数体中可以通过这个参数拿到定义参数以外的参数值。

var study = function(name , time){
    // 传统方式只能拿到定义的参数
    console.log(name);
    console.log(time);
    // 通过arguments可以定义参数以外的参数
    console.log(arguments.length);
    console.log(arguments[0]);
    console.log(arguments[1]);
    console.log(arguments[2]);
    console.log(arguments[3]);
    
    console.log(name+'每天学习'+time+'分钟');
}

study("zhangsan",180,1,"a");

4.数组

用来装元素的集合。

JS中数组下标越界不会异常,访问会返回 undefined。

数组定义

// 方式1 
var arr1 = [1,2,3,true,2.1,'hello',null ];
// 方式2 
var arr2 = new Array(1,2,3,true,2.1,'hello',null);

console.log(arr1[100]);// undefined

5.对象

对象由 花括号{} 分隔,属性由 逗号, 分隔。

在括号内部,对象的属性以名称和值对的形式 (name : value) 来定义。

下面的例子中,对象 (person) 有三个属性:firstname、lastname 以及 id:

var person = {firstname:"John", lastname:"Doe", id:5566};

空格和折行无关紧要。声明可横跨多行:

var person = {
    firstname : "John",
    lastname : "Doe",
    id    : 5566
};

对象属性有两种寻址方式:

name = person.lastname;
name = person["lastname"];

在对象中定义一个方法:

var person = {
    firstname : "John",
    lastname : "Doe",
    id    : 5566 ,
    talk : funciton(){
    	document.write("HelloWorld!")
	}
};

6.判断变量的数据类型

typeof 方法

可以使用 typeof 操作符来检测变量的数据类型,括号可加可不加。

typeof(1) // number
typeof(1.11) // number
typeof(NaN) // number

typeof "ABC" // string
typeof 'ABC' // string

typeof true // boolean
typeof false // boolean

typeof undefined // undefined

typeof null // object
typeof [1,2,3,4]; // object
typeof {name:'John', age:34} // object
typeof new Date() //  object

typeof function () {}  // function

isArray 方法

注意:isArray 只能用来判断 Array!

var cars=new Array();
cars[0]="Saab";
cars[1]="Volvo";
cars[2]="BMW";

// 判断是否支持该方法
if (Array.isArray) { 
    // 检验该对象是否为数组
    if(Array.isArray(cars)) {
        document.write("true") ;
    }
}

instanceof 操作符

注意:instanceof 只能用来判断 Object !

var arr = new Array("a","b","c");

if (arr instanceof Array) {
    document.write("该对象是一个数组。") ;
}

7.流程控制语句

if…else…

只有当指定条件为 true 时,该语句才会执行代码。

if (condition) {
    当条件为 true 时执行的代码
}

在条件为 true 时执行代码,在条件为 false 时执行其他代码。

if (condition) {    
	当条件为 true 时执行的代码}
else {
    当条件不为 true 时执行的代码
}

选择多个代码块之一来执行。

if (condition1) {
    当条件 1true 时执行的代码
} else if (condition2) {
    当条件 2true 时执行的代码
} else {
  当条件 1 和 条件 2 都不为 true 时执行的代码
}

switch

在 Java 中,switch语句可以接受的数据类型:byte int short char 枚举(1.5) String(1.7)。

在 JavaScript 中,switch语句可以接受任意的原始数据类型。

switch(n) {
    case 1:
        执行代码块 1
        break;
    case 2:
        执行代码块 2
        break;
    default:
        匹配不存在时做的事情
}

for

语句 1 (代码块)开始前执行

语句 2 定义运行循环(代码块)的条件

语句 3 在循环(代码块)已被执行之后执行

for (语句1 ; 语句2 ; 语句3) {
   循环体
}

语句 1

通常我们会使用语句 1 初始化循环中所用的变量 (var i=0)。

语句 1 是可选的,不使用语句 1 也可以。

您可以在语句 1 中初始化任意(或者多个)值:

var i=2,len=cars.length;
for (; i<len; i++){ 
    document.write(cars[i] + "<br>");
}

语句 2

通常语句 2 用于评估初始变量的条件。

语句 2 同样是可选的。

如果语句 2 返回 true,则循环再次开始,如果返回 false,则循环将结束。

如果您省略了语句 2,那么必须在循环内提供 break。否则循环就无法停下来。这样有可能令浏览器崩溃。

语句 3

通常语句 3 会增加初始变量的值。

语句 3 也是可选的(比如当循环内部有相应的代码时):

var i=0,len=cars.length;
for (; i<len; ){ 
    document.write(cars[i] + "<br>");
    i++;
}

for In

遍历数组,则变量为索引:

var nums = [1, 3, 5];

for (var x in nums) {
    document.write(nums[x]+ "<br />");
}

for of

遍历数组,则变量为元素:

var nums = [1, 3, 5];

for (var x of nums) {
    document.write( x + "<br />");
}

while

while 循环会在指定条件为真时循环执行代码块。

while (条件)
{
    需要执行的代码
}

do/while

do/while 循环会在检查条件是否为真之前执行一次代码块,然后如果条件为真的话,就会重复这个循环。

do
{
    需要执行的代码
}
while (条件);

break & continue

break 语句可用于跳出循环。

for (i=0;i<10;i++)
{
    if (i==3)
    {
        break; 
    }
    x = x + "The number is " + i + "<br>";
}
// 该数字为 0
// 该数字为 1
// 该数字为 2

continue 语句跳出循环后,会继续执行该循环之后的代码(如果有的话)。

for (i=0;i<6;i++)
{
    if (i==3)
    {
        countinue; 
    }
    x = x + "The number is " + i + "<br>";
}
// 该数字为 0
// 该数字为 1
// 该数字为 2
// 该数字为 4
// 该数字为 5
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值