js简介
JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分.
组成部分
JavaScript 的内容,包含以下三部分:
ECMAScript(核心):JavaScript 语言基础(规定了 JavaScript 脚本的核心语法,如 数据类型、关键字、保留字、运算符、对象和语句等,它不属于任何浏览器。);
DOM(文档对象模型):规定了访问HTML和XML的接口(提供了访问 HTML 文档(如body、form、div、textarea等)的途径以及操作方法);
BOM(浏览器对象模型):提供了独立于内容而在浏览器窗口之间进行交互的对象和方法(提供了访问某些功能(如浏览器窗口大小、版本信息、浏览历史记录等)的途径以及操作方法)。
JS在HTML中存在的位置:
方式1: 在标签中,任何地方添加标签.标签中内容就是js代码. 虽然可以放在页面的任何地方,但是规范放在标签中.
<script type="text/javascript">
//JS代码
alert("hello JS");
</script>
方式2:单独使用一个文件来编写javascript代码,在需要使用的页面中引入该文件.
<script type="text/javascript" src="hello.js"></script>引入该文件.
方式3:把代码编写的a标签的href属性中,点击a标签的时候,就执行里面代码
<a href='javascript:alert("hello");'>运行js代码</a>
JS基本语法
JavaScript中的标识符
变量,常量,函数,语句块也有名字,我们统统称之为标识符。标识符可以由任意顺序的大小写字母、数字、下划线(_)和美元符号($)组成,标识符不能以数字开头,不能是JavaScript中的保留字或关键字。
JavaScript严格区分大小写
username和userName是两个完全不同的符号
JavaScript程序代码的格式
每条功能执行语句的最后必须用分号(;)结束,每个词之间用空格、制表符、换行符或大括号、小括号这样的分隔符隔开 。
JS定义变量:
什么是变量,系统为之设置一个标识,程序可以用变量名来指向具体的对象内存,并通过变量名来获得对应的对象。
声明变量要使用var关键字
例如:var name;//一般不使用name作为变量名
打印变量:
方式1: alert(变量名);
方式2: console.debug(变量名);
JS中基本类型和常量:
Number(数字类型)
1、整型常量(10进制\8进制\16进制)
十六进制以0x或0X开头,例如:0x8a。
八进制必须以0开头,例如:0123。
十进制的第一位不能是0(数字0除外),例如:123。
2、实型常量
12.32、193.98、 5E7、4e5等。
特殊数值:NaN、Infinity(除数为零),所对应的判断函数isNaN()、isFinite()Boolean(布尔值) true和false。
String字符串(注意js中没有char类型,所有’a’也是一个字符串)
“a book of JavaScript”、‘a’、 “a”、“”。
字符串中的特殊字符,需要以反斜杠(\)后跟一个普通字符来表示。
null常量
undefined常量 (未定义,定义未赋值)
typeof运算符:typeof:判断变量的数据类型 ##
var msg='will';
console.debug(typeof msg );//string
msg=17;
console.debug(typeof msg );//number
JS中的运算符和Java中大体相同:
现在单讲JS和Java中不同的运算符:
1):=和==以及===符号.
=:表示赋值和Java一样.
==:表示比较两个常量/变量的内容,不比较类型.
===:先比较两个变量/常量的类型,如果类型不同,返回false,如果类型相同在比较内容.
不要将比较运算符“==”误写成“=” ;
console.debug("17" == 17)//true
console.debug("17" === 17) //false
2):逻辑运算符(&&和 ||).
规则:在JS逻辑运算中,0、""、false、null、undefined、NaN均表示false。
a&& b : 将a, b转换为Boolean类型, 再执行逻辑与, 若表达式结果为true返回b, false返回a
a || b : 将a, b转换为Boolean类型, 再执行逻辑或, 若表达式结果为true返回a, false返回b
&& 和|| 运算符的区别(开关):
&&操作:返回最后一个为true的值,或者第一个为false的值.
||操作: 返回第一个为true的值,或则最后一个为false的值.
函数定义和调用
函数的分类:
普通函数: function 函数名称([参数列表]){}
匿名函数: var xx = function([参数列表]){}.只使用一次,可以当做是值做传递.
注意:
参数都不写类型,直接写参数名称.函数一定得调用才能执行.
全局变量和局部变量
全局变量:function外部定义的变量称为全局变量
局部变量:function内部定义的变量称为局部变量
访问变量原则:就近原则,谁离我最近我就使用谁。
系统函数
系统函数,全局函数,JS中已经定义好的,可以直接调用的函数.
eval 方法
将参数字符串作为一个JavaScript表达式执行。
js中面向对象设计
面向对象:
对象中所包含的变量就是对象的属性,对象中所包含的对属性进行操作的函数就是对象的方法,对象的属性和方法都叫对象的成员。
类是对某一类事物的描述,是抽象上的概念;而对象实例是一类事物中的具体个例。
能够被用来创建对象实例的函数就叫对象的构造函数。使用new关键字和对象的构造函数就可以创建对象实例,语法格式如下:var objInstance = new ObjName(传递给该对象的实际参数列表);
面向对象最基本的:定义类,创建对象,对象去操作属性和方法.
//js创建一个类,只需要定义类的构造函数(方法);
this关键字:
//在构造函数中:this指新创建的对象
//在函数/方法中:谁调用this所在的函数/方法,this就是谁.
function User() {
this.name='will';
var age=17;
}
//使用构造函数,创建对象
var u= new User();
//设置对象的属性
//u.name='张三';
function Person(name,age){
this.name = name;
this.age= age;
}
var p = new Person("lili",25);
//为对象添加方法:js中,函数也是一个值.
p.show = function(){
alert(this.name+","+this.age);
};
p.show();