版权声明:本文为博主原创文章,若文章中有错误请联系博主改正,请不要恶意留言(不喜欢请绕道)。欢迎大家转载,转载时请注明原文地址:https://blog.youkuaiyun.com/qq_37674616/article/details/82080200
目录
js组成
1)ECMAScript(ECMA) 提供js语法标准
包括:
变量
数据类型
关键字
操作符(var)
语句
数组
面向对象
2)DOM,提供访问和操作网页内容的方法和接口
文档对象模型
js语法标准开发出来的操作元素的js库
3)BOM,提供与浏览器交互的方法和接口
浏览器对象模型
window.alert()
setInterval()
setTimeout()
基本概念(ECMA)
1)语法
1.区分大小写
2.标识符
第一个字符必须是字母、下划线(_)或一个美元符号($)
其他字符可以是字母、下划线、美元符号或数字
3.注释
包括单行注释和块级注释
//单行注释
/* 块级注释*/
4.严格模式
1.可以在脚本顶部添加 "use strict"
2.可以在函数体内部使用:
function doSomething(){
"use strict";
//函数体
}
5.语句
ECMAScript的语句以一个分号结尾;如果省略分号则由解析器确定语句的分号。不推荐省略分号,省略分号会导致解析器要花费更多时去推测分号位置,若通过空格压缩代码会导致压缩错误
2)关键字和保留字
关键字
var、break、 case、 void 、while、 typeof ...
保留字
int、 short、 long、 byte、 abstract、 class ...
3)变量
每个变量仅仅是一个用于保存值的占位符。如 var message
** 注意:用var操作符定义的变量将成为定义该变量的作用域中的局部变量,例如
function test(){
var message="hi"; //局部变量
}
test();
alert(message); //错误!!
在上面的例子中如果省略 var操作符,因而message就成了全局变量。
4)数据类型
5中基本数据类型:Number、String、Boolean、Undefined Null
还有一种复杂数据类型 --Object,Object本质是由一组无序的名值对组成。
4.1 typeof 操作符
对一个值使用typeof操作可能返回下列某个字符串:
* "undefined" --如果这个值未定义
* "boolean" --如果这个值是布尔值
* "string" --如果这个值是字符串
* "number" --如果这个值是数值
* "object" --如果这个值是对象或null
* "function" --如果这个值是函数。
***注意:但是尚未定义(尚未声明)与未初始化的变量执行typeof操作符都会返回undefined值。这个结果有其逻辑上的合理性、因为虽然这两种变量从技术角度看有本质区别,但实际上无论对哪种变量也不肯能执行真正的操作。
4.2 Undefined类型
该类型只有一个值,即underfined,在使用var声明变量但未对其初始化时,这个变量的值就是underfined 例如:
var message;
console.log(message == underfined); //true
==>等价于
var message= underfined;
console.log(message == undefined); //true
***注意:对于尚未定义过的变量,通过控制台打印会报错!
4.3 Null类型
该类型也只有一个值 即null。从逻辑角度来看,null值表示一个空对象指针。因此typeof操作符检测null值时返回"object"
用途:如果定义的变量准备在将来用来保存对象,那么最好将该变量初始化化为null
var car=null;
console.log(car); //"object"
**注意:其实undefined值是派生自null值的,因此
console.log(null==undefiend) //true
4.4 Boolean类型
该类型只有两个字面值:true和false。但这两个值与数字值不是一回事,因此true不一定等于1,而false也不一定等于0.
var found=true;
var lost=false;
如果要将一个值转换成一个boolean值。可以调用Boolean()函数。
各种数据类型的转换规则
boolean true false
String 任何非空字符串 ""(空字符串)
Number 任何非零数字值(包括无穷大) 0和NaN
Object 任何对象 null
Unfefined n/a undefined
** 在if语句中自动执行相应的Boolean转换。
例如:
var message;
if(message){
alert("Value is true");
}
4.5 Number类型
该类型可以表示整数和浮点数值。
var intNum=55 //整数
var octalNum1=070; //八进制数值56
var octalNum2=078 //无效的八进制--解析为 78
4.5.1 浮点数值
1)由于保存浮点数值需要的内存空间是保存整数值的两倍,因此ECMAScript会不失时机地将浮点数值转换为整数值
var floatNum=1.0 //解析为 1
2)对于极大或者极小的数可以用 e 表示(即科学计数法)
var floatNum=3.12e7 //等价于 3.12*10^7
4.5.2 isFinite()
来确定参数是否超出了数字范围,若没有超出返回 true 超出后返回false
正无穷 infinity 负无穷 -infinity
*** 正数除以0返回 Infinity 负数除以0返回-Infinity 0除以0返回NaN
4.5.3 NaN
表示一个非数值的特殊数值。这个数值用来表示一个本来要返回数值的操作数 未返回数值的情况(这样就不会抛出错误,计算机还能继续运行)
**NaN与任何值都不相等,包括NaN本身。