1、编写位置
1.1、目前学习的JS全都是客户端的JS,也就是说全都是需要在 浏览器中运行的,所以我们我们的JS代码全都需要在网页中编写。
1.2、我们的JS代码需要编写到<script>标签中。
1.3、我们一般将script标签写到head中。(和style标签有点像)
1.4、属性:
type:默认值text/javascript可以不写,不写也是这个值。
src:当需要引入一个外部的js文件时,使用该属性指向文件的地址。
2、Hello World
2.1、创建一个html文件。
2.2、在html文件的的head标签中创建一个 script标签,并编写如下代码。
<script type="text/javascript">
console.log("Hello world");
</script>
3、严格区分大小写
4、注释
4.1、注释中的内容不会被解析器解析执行,但是会在源码中显示,我们一般会使用注释对程序中的内容进行解释。
4.2、JS中的注释和Java的的一致,分为两种:
单行注释://注释内容
多行注释:/*注释内容*/
5、标识符
5.1、所谓标识符,就是指变量、函数、属性的名字,或函数的参数。
5.2、标识符可以是按照下列格式规则组合起来的一或多个字符:
5.2.1、第一个字符必须是一个字母、下划线( _ )或一个美元符号( $ )。
5.2.2、其他字符可以是字母、下划线、美元符号或数字。
5.3、按照惯例,ECMAScript 标识符采用驼峰命名法。
5.4、但是要注意的是JavaScript中的标识符不能是关键字和保留字符。
6、关键字和保留字符
6.1、关键字
6.2、保留字
6.3、其他不建议使用的标识符
7、变量
7.1、变量的作用是给某一个值或对象标注名称。
7.2、比如我们的程序中有一个值123,这个值我们是需要反复使用的,这个时候 我们最好将123这个值赋值给一个变量,然后通过变量去使用123这个值。
7.3、变量的声明:
使用var关键字声明一个变量。
var a;
7.4、变量的赋值:
使用=为变量赋值。
a=123;
7.5、声明和赋值同时进行:
var a = 123;
8、数据类型
8.1、数据类型决定了一个数据的特征,比如:123和”123” ,直观上看这两个 数据都是123,但实际上前者是一个数字,而后者是一个字符串。
8.2、对于不同的数据类型我们在进行操作时会有很大的不同。
8.3、JavaScript中一共有5种基本数据类型:
– 字符串型(String)
– 数值型(Number)
– 布尔型(Boolean)
– null型(Null)
– undefined型(Undefined)
8.4、这5种之外的类型都称为Object,所以总的来看JavaScript中共有六种数 据类型。
9、typeof运算符
9.1、使用typeof操作符可以用来检查一个变量的数据类型。
9.2、使用方式:typeof 数据,例如 typeof 123。
9.3、返回结果:
– typeof 数值 number
– typeof 字符串 string
– typeof 布尔型 boolean
– typeof undefined undefined
– typeof null object
10、String
10.1、String用于表示一个字符序列,即字符串。
10.2、字符串需要使用 ’或“ 括起来。
10.3、转义字符
10.4、将其他数值转换为字符串有三种方式:toString()、String()、 拼串。
11、Number
11.1、Number 类型用来表示整数和浮点数,最常用的功能就是用来 表示10进制的整数和浮点数。
11.2、Number表示的数字大小是有限的,范围是: ± 1.7976931348623157e+308
如果超过了这个范围,则会返回± Infinity。
11.3、NaN,即非数值(Not a Number)是一个特殊的数值,JS中 当对数值进行计算时没有结果返回,则返回NaN。
12、数值的转换
12.1、有三个函数可以把非数值转换为数值:Number()、parseInt() 和parseFloat()。
12.2、Number()可以用来转换任意类型的数据,而后两者只能用于 转换字符串。
12.3、parseInt()只会将字符串转换为整数,而parseFloat()可以转换 为浮点数。
13、Boolean(布尔型)
13.1、布尔型也被称为逻辑值类型或者真假值类型。
13.2、布尔型只能够取真(true)和假(false)两种数值。除此以外, 其他的值都不被支持。
13.3、其他的数据类型也可以通过Boolean()函数转换为布尔类型。
13.4、转换规则:
14、Undefined
14.1、Undefined 类型只有一个值,即特殊的 undefined 。
14.2、在使用 var 声明变量但未对其加以初始化时,这个变量的值就 是 undefined。
例如: var message;
message 的值就是 undefined。
14.3、需要注意的是typeof对没有初始化和没有声明的变量都会返回 undefined。
15、Null
15.1、Null 类型是第二个只有一个值的数据类型,这个特殊的值是 null 。
15.2、从语义上看null表示的是一个空的对象。所以使用typeof检查 null会返回一个Object。
15.3、undefined值实际上是由null值衍生出来的,所以如果比较 undefined和null是否相等,会返回true;
16、运算符
16.1、JS中为我们定义了一套对数据进行运算的运算符。
16.2、这其中包括:算数运算符、位运算符、关系运算符等。
16.3、算数运算符
16.3.1、算数运算符顾名思义就是进行算数操作的运算符。
16.3.2、JS中为我们提供了多种算数运算符。
16.3.2.1、自增和自减
自增 ++ 自减 --
自增和自减分为前置运算和后置元素。
所谓的前置元素就是将元素符放到变量的前边,而后置将元素符放到变 量的后边。
例子:
前置自增:++a
后置自减:a—
运算符在前置时,表达式值等于变量原值。
运算符在后置是,表达式值等于变量变更以后的值。
16.4、逻辑操作符
16.4.1、一般情况下使用逻辑运算符会返回一个布尔值。
16.4.2、逻辑运算符主要有三个:非、与、或。
16.4.3、在进行逻辑操作时如果操作数不是布尔类型则会将其转换 布尔类型在进行计算。
16.4.4、非使用符号 ! 表示,与使用 && 表示,或使用 || 表示。
17、赋值运算符
17.1、简单的赋值操作符由等于号 ( = ) 表示, 其作用就是把右侧的值赋给左侧的变量。
17.2、如果在等于号左边添加加减乘除等运算符, 就可以完成复合赋值操作。
17.3、+= 、 *= 、-= 、/= 、%=
17.4、比如:a+=10和a=a+10是一样的。
18、关系运算符
18.1、小于() 、大于(>) 、小于等于()和大于等于(>=) 这几个关系运算符用于对两个值进行比较,比较的规则与我们 在数学课上所学的一样。
18.2、这几个运算符都返回一个布尔值。用来表示两个值之间的关系 是否成立。
19、相等
19.1、JS中使用==来判断两个值是否相等,如果相等则返回 true。
19.2、使用!=来表示两个值是否不相等,如果不等则返回true。
19.3、注意:null和undefined使用==判断时是相等的。
20、全等
20.1、除了==以外,JS中还提供了=== 。
20.2、===表示全等,他和==基本一致,不过==在判断两个值 时会进行自动的类型转换,而===不会。
20.3、也就是说”55”==55会返回true,而”55”===55会返回 false;
20.4、同样我们还有!==表示不全等,同样比较时不会自动转型。
也就是说”55”!=55会返回false,而”55”!==55会返回 true;
21、逗号
21.1、使用逗号可以在一条语句中执行多次操作。
比如:var num1=1, num2=2, num3=3;
21.2、使用逗号运算符分隔的语句会从左到右顺 序依次执行。
22、条件运算符
22.1、条件运算符也称为三元运算符。通常运算符写为?:。
22.2、这个运算符需要三个操作数,第一个操作数在?之前, 第二个操作数在?和:之间,第三个操作数在:之后。
例如:x > 0 ? x : -x // 求x的绝对值
上边的例子,首先会执行x>0,如果返回true则执行冒 号左边的代码,并将结果返回,这里就是返回x本身, 如果返回false则执行冒号右边的代码,并将结果返回。
23、运算符的优先级
24、语句
24.1、前边我所说表达式和运算符等内容可以理解成是我们一 门语言中的单词,短语。
24.2、而语句(statement)就是我们这个语言中一句一句完 整的话了。
24.3、语句是一个程序的基本单位,JS的程序就是由一条一条 语句构成的,每一条语句使用;结尾。
24.4、JS中的语句默认是由上至下顺序执行的,但是我们也可 以通过一些流程控制语句来控制语句的执行顺序。
25、代码块
25.1、代码块是在大括号 {} 中所写的语句,以此将 多条语句的集合视为一条语句来使用。
例如:
{
var a = 123;
a++;
alert(a);
}
25.2、我们一般使用代码块将需要一起执行的语句进 行分组,需要注意的是,代码块结尾不需要加 分号。
26、条件语句
26.1、条件语句是通过判断指定表达式的值来决 定执行还是跳过某些语句。
26.2、最基本的条件语句:
if...else
switch...case
26.3、if...else语句
26.3.1、if...else语句是一种最基本的控制语句,它让JavaScript可以有条件的 执行语句。
//第一种形式:
if(expression)
statement
//第二种形式:
if(expression)
statement
else
statement
//除了if和else还可以使用 else if 来创建多个条件分支。
26.3.2、if语句例子
//例1
if(age >= 18){
alert("小子,你已经成年!");
}
//例2
if(age >= 18){
alert("你已经成年!");
}else{
alert("你还未成年!");
}
//例3
if(age < 18){
alert("你还未成年!");
}else if(age <= 30){
alert("你已经是个青年了!")
}else{
alert("您已经是个中年了!");
}
27、switch...case语句
27.1、switch...case是另一种流程控制语句。
27.2、switch语句更适用于多条分支使用同一条语句的情况。
//语法:
switch(语句){
case 表达式1:
语句...
case 表达式2:
语句...
default:
语句...
}
27.3、 需要注意的是case语句只是标识的程序运行的起点,并不是终 点,所以一旦符合case的条件程序会一直运行到结束。所以我 们一般会在case中添加break作为语句的结束。
28、循环语句
28.1、和条件语句一样,循环语句也是基本的控 制语句。
28.2、循环中的语句只要满足一定的条件将会一 直执行。
28.3、while
28.3.1、while语句是一个最基本的循环语句。
while语句也被称为while循环。
//语法:
while(条件表达式){
语句...
}
28.3.2、和if一样while中的条件表达式将会被转换为布尔类型,只 要该值为真,则代码块将会一直重复执行。
28.3.3、代码块每执行一次,条件表达式将会重新计算。
28.4、do...while
28.4.1、do...while和while非常类似,只不过它会 在循环的尾部而不是顶部检查表达式的值。
28.4.2、do...while循环会至少执行一次。
//语法:
do{
语句...
}while(条件表达式);
28.4.3、相比于while,do...while的使用情况并不 是很多。
28.5、for
28.5.1、for语句也是循环控制语句,我们也称它为for循环。
28.5.2、大部分循环都会有一个计数器用以控制循环执行的次数, 计数器的三个关键操作是初始化、检测和更新。for语句 就将这三步操作明确为了语法的一部分。
//语法:
for(初始化表达式 ; 条件表达式 ; 更新表达式){
语句...
}
28.6、break和continue
28.6.1、break 和 continue 语句用于在循环中精确地控制代码的执行。
28.6.2、使用break语句会使程序立刻退出最近的循环,强制执行循环 后边的语句。
28.6.3、break语句只在循环和switch语句中使用。
28.6.4、使用continue语句会使程序跳过当次循环,继续执行下一次循 环,并不会结束整个循环。
28.6.5、continue只能在循环中使用,不能出现在其他的结构中。
29、label
29.1、使用 label 语句可以在代码中添加标签,以便将来使用。
//语法:
label: statement
//例子:
start: for (var i=0; i < count; i++) {
alert(i);
}
29.2、这个例子中定义的 start 标签可以在将来由 break 或 continue 语句 引用。加标签的语句一般都要与 for 语句等循环语句配合使用。
30,基本语法应用案例:
30.1、最后附上JavaScript基本语法的常用应用案例
//计算1--10累加和
function add(){
var sum = 0;
for (var i = 0; i <= 10; i++) {
sum = sum+i;
}
}
//判断一个数是不是素数
function suShu(n){
if (n<=1){
return false;
}
for (var i = 2; i <= n; i++) {
if (n % i === 0){
return false;
}else {
return true
}
}
}
console.log(suShu(7));
//翻转字符串
function fzStr(str){
var newStr = "";
if (str.length > 0 ){
for (var i = str.length; i <= str.length; i--) {
newStr = newStr+str[i];
}
return newStr;
}
}
console.log(fzStr("Hello"));
//找出数组中最大值
function maxArr(arr){
var max = arr[0];
for (var i = 0; i < arr.length; i++) {
if (arr[i] > max){
max = arr[i];
}
}
return max;
}