javascript知识点总结(一)

第一章 值、类型和运算符

一、JavaScript 数据类型

值类型(基本类型)字符串(String)、数字(Number)、布尔(Boolean)、对空(Null)、未定义(Undefined)、Symbol。

引用数据类型对象(Object)、数组(Array)、函数(Function)。

 

(一)JavaScript 对象

在 JavaScript中,几乎所有的事物都是对象。

JavaScript 对象是变量的容器。

语法:

var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};

或者

var person = {
    firstName:"John",
    lastName:"Doe",
    age:50,
    eyeColor:"blue"
}; 

访问对象的属性

访问对象的方法

举例

函数属性作为一个方法访问 & 函数属性作为一个属性访问

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"> 
<title>菜鸟教程(runoob.com)</title> 
</head>
<body>

<p>创建和使用对象方法。</p>
<p>对象方法是一个函数定义,并作为一个属性值存储。</p>
<p id="demo1"></p>
<p id="demo2"></p>
<script>
var person = {
    firstName: "John",
    lastName : "Doe",
    id : 5566,
    fullName : function() 
	{
       return this.firstName + " " + this.lastName;
    }
};
document.getElementById("demo1").innerHTML = "不加括号输出函数表达式:"  + person.fullName;
document.getElementById("demo2").innerHTML = "加括号输出函数执行结果:"  +  person.fullName();
</script>
	
</body>
</html>

(二)数字

在JavaScript中有三个特殊的值:
Infinity:表示正无穷大。

-Infinity:表示负无穷大。

Infinity-1的结果仍然是Infinity,以此类推。不要过于依赖无穷运算的结果,因为这类运算并不真正属于数学运算,由此我们可以引出下一个特殊数字:NaN。
NaN:是数字类型的值,但我们用其表示“非数值”。举例来说,在计算0/0(0除以0)、Infinity-Infinity或当数值运算中产生不精确或毫无意义的结果时,就用NaN来表示。

(三)字符串

单双引号都可用来表示字符串。

如何把引号放入字符串?

1、使用单引号来包围其中带有一个或多个双引号的字符串。如'he said,"hello" '.

2、在引号前面使用反斜杠(\),引号就会当做字符串的一部分来处理。如“he said,"hello.\""()

(四)布尔值

1、比较

在JavaScript中,只有一个值不等于其自身,那就是NaN(Not a Number,非数值)。

NaN用于表示非法运算的结果,正因如此,不同的非法运算结果也不会相等。

2、逻辑运算符

&&运算符表示逻辑与,该运算符是二元运算符,只有当赋给它的两个值均为true时其结果才是真;
||运算符表示逻辑或。当两个值中任意一个为true时,结果就为真;

优先级:||优先级最低,其次是&&,接着是比较运算符(>,==等),最后是其他运算符。

(五)自动类型转换

1、JavaScript会将0、NaN和空字符串("")视为false,其他值视为true。因此,诸如0==false和""==false之类的表达式都是true。

如果我们不希望在比较的时候进行任何自动类型转换,可以使用另外两个运算符:===和!==

第一个运算符用于检测两个值是否严格相等,第二个运算符用于测试是否严格不等。

(六)逻辑运算符的短路特性

当左侧值可以被转换成true时,||运算符会直接返回左侧的值,否则会返回右侧的值。

||运算符的这种功能可用于返回默认值。如果左侧表达式可能产生空值,那么右侧的表达式可以在左侧表达式为空时作为替代。
&&运算符工作方式与其相似但不相同。当左侧的值可以被转换成false时,&&运算符会返回左侧值,否则返回右侧值。
这两种运算符的另一个重要特性是:只有必要时才会计算右侧的表达式。

(七)变量

1、创建变量

  • 变量名必须以一个字母、$或者_开头
  • 变量名只能包含字母、数字、$和_
  • 变量名区分大小写

2、变量的使用

注意不能把变量和引号一起使用,引号只是和字符串一起使用

3、数值转换

var numOfShoes='2';
var numOfShoes=4;
var totalItems=numOfShoes+numOfSocks;

结果为 字符串'24'

若想将其等于6

方法一:在字符串前面加‘+’号(确保变量和+号之前没有空格),就可以把字符串转为数值。

var numOfShoes='2';
var numOfShoes=4;
var totalItems=+numOfShoes+numOfSocks;

方法二:使用Number()命令

var numOfShoes='2';
var numOfShoes=4;
var totalItems=Number(numOfShoes)+numOfSocks;

Number()在可能的情况下把一个字符串转换为数值(如果字符串只是字母而不是数值,我们会得到一个NaN值,表示不能把字母转换为一个数值)

在进行乘法运算时,解释器会把字符串转换为数值。

练习

请求信息

<script>
    var name=prompt("what is your name?",' ');
    document.write("<p>welcome"+name+"</p>");

</script>

(七)数组

1、创建数组

2、访问数组

days[6]='sunday'; 等价于 days[days.length-1]

3、向数组添加项目

举例:var properties=['red','14px','Arial'];

(1)在数组末尾添加

方法一:properties[3]='bold';

方法二:properties[properties.length]='bold';

方法三:properties.push('bold');

push()命令的优点是允许向数组中添加多个项目。

例如:properties.push('bold','italic','underlined');

(2)在数组开头添加

方法:使用unshift()命令

var properties=['red','14px','Arial'];

properties.unshift('bold');

unshift()允许向数组开头添加多个项目。

例如:properties.push('bold','italic','underlined');

4、从数组删除项目

二、函数

(一)函数基础

1、带有返回值的函数

2、局部变量和全局变量

(二)JS函数参数

1、ES6 函数可以自带参数

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
</head>
<body>

<p>设置参数的默认值。</p>
<p id="demo1"></p>
<p id="demo2"></p>
<script>
function myFunction(x, y = 10) {
    // 如果不传入参数 y ,则其默认值为 10
    return x + y;
}
// 输出 2
document.getElementById("demo1").innerHTML = myFunction(0, 2) ;
// 输出 15, y 参数的默认值
document.getElementById("demo2").innerHTML = myFunction(5);
</script>

</body>
</html>

2、Arguments 对象

JavaScript 函数有个内置的对象 arguments 对象。

argument 对象包含了函数调用的参数数组。

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<p id="demo"></p>
<script>
x=myfunction(11,22,33,44,55);
    function myfunction(){
        var i,max=arguments[0];
        if (arguments.length<2)return max;
        for(i=0;i<arguments.length;i++){
            if(arguments[i]>max)
            max=arguments[i];
        }
        return max;
    }
document.getElementById("demo").innerHTML=x;
</script>
<button onclick="myfunction('gabby','web开发')">点我</button>
</body>
</html>
<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<p id="demo"></p>
<script>
x=myfunction(11,22,33,44,55);
    function myfunction() {
        var i, sum=0;
        for(i=0;i<arguments.length;i++){
            sum+=arguments[i];
        }
        return sum;
    }
document.getElementById("demo").innerHTML=x;
</script>
<button onclick="myfunction('gabby','web开发')">点我</button>
</body>
</html>

(三)函数调用

1、this 关键字

(1)一般而言,在Javascript中,this指向函数执行时的当前对象。注意 this 是保留关键字,你不能修改 this 的值。

(2)当函数没有被自身的对象调用时 this 的值就会变成全局对象。在 web 浏览器中全局对象是浏览器窗口(window 对象)。

2、函数作为调用方法

在 JavaScript 中你可以将函数定义为对象的方法。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
</head>
<body>

<p>myObject.fullName() 返回 John Doe:</p>
<p id="demo"></p>
<script>
var myObject = {
    firstName:"John",
    lastName: "Doe",
    fullName: function() {
		return this.firstName + " " + this.lastName;
    }
}
document.getElementById("demo").innerHTML = myObject.fullName(); 
</script>

</body>
</html>

3、使用构造函数调用函数

如果函数调用前使用了 new 关键字, 则是调用了构造函数。

这看起来就像创建了新的函数,但实际上 JavaScript 函数是重新创建的对象:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
</head>
<body>

<p>该实例中, myFunction 是函数构造函数:</p>
<p id="demo"></p>
<script>
function myFunction(arg1, arg2) {
	this.firstName = arg1;
    this.lastName  = arg2;
}
var x = new myFunction("John","Doe")
document.getElementById("demo").innerHTML = x.firstName; 
</script>

</body>
</html>

构造函数的调用会创建一个新的对象。新对象会继承构造函数的属性和方法。

构造函数中 this 关键字没有任何的值。
this 的值在函数调用实例化对象(new object)时创建。

三、逻辑和控制

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值