javascript学习笔记部分总结
1.js是一种脚本语言,有逐行解释执行的特点,js分为三个部分 ECMAScript(Javascript语法)、Dom(页面文档对象模型)、Bom(浏览器对象模型)。
2.js有三种写法
-
行内式的js,直接写到元素的内部,写入标签中以on 开头
<input type="button" value="唐伯虎" onclick="alert('秋香姐!')"
-
内嵌式的js,直接写到
<head>
标签中的<script>
标签中,和css类似 -
外部js 、script 双标签
<script src="my.js"></script>
一.js的基础语法
1.js的注释 -
单行注释
//
-
多行注释
/* */
2.输入输出语句 -
输入框
prompt(' ')
-
弹出警示框
alert(' ')
-
控制台输出,用于程序员的输出
console.log()
二.变量
1.变量的声明
(1)声明变量var age;
声明一个名为age 的变量
(2)同时声明多个变量var age ,address;
变量间用逗号隔开
(3) 声明特殊变量 -
只声明不赋值,结果为undefied
-
不声明不赋值,结果会报错
-
不声明直接赋值,可使用但不推荐
2.变量的数据类型
js是一种弱类型或者说是动态语言,在程序运行的过程中通过等号右边的值来确定是什么类型。
数据类型的分类
(1)number 数字型,包含整型和浮点型
数字型的范围
最大值consolo.log(number.Max_value)
最小值consolo.log(number.Min_value)
无穷大consolo.log(Infinity)
无穷小consolo.log(-Infinity)
非数值consolo.log(NaN)
补充isNaN()可用于判断非数字,并且返回一个值,若是则返回false,不是则返回true
(2)字符串型string
字符串转义字符(用\开头,需要写在引号里面)
转义字符 | 解释 |
---|---|
\n | 换行符 |
\t | tab缩进 |
\b | 空格 |
字符串长度(length)
字符串由若干字符组成,字符的数量就是字符串长度,通过length属性获取字符串的长度
var strMsg="我是帅气的";
alert(strMsg.length);
字符串的拼接
多个字符串之间可以使用**+**进行拼接,方法为字符串+任何类型=拼接后的字符串,只要有字符串和其他类型相拼接,最终结果一定是字符串。
(3)布尔型有两个值:true和false,true为真,false为假,布尔型和数字型相加时,true的值为1,false的值为2。
(4)undefined、null型
(5)获取检测数据类型(typeof)
var num=10;
alert(typeof num);
promot取过来的值均为字符串类型
(6)数据类型的转换
1.转换为字符串类型
- tostring 转化为字符串
var num=1;
alert(num.tostring());
- string()强制转换
var num=1;
alert(string(num));
- 利用+拼接字符串
var num=1;
alert(num+'');
2.转换为数字型
方法 | 解释 | 实例 |
---|---|---|
parselent(string) | 将string转化为整型 | parsenlent(‘78’) |
parseFloat(string) | 将string转化为浮点型 | parseFloat(“78.21) |
Number() | 将string强制转化为数值型 | Number(’'12) |
js隐式转换(-*\) | 利用算术运算转为数值型 | ‘12’-0 |
3.转换为布尔型
Boolean()函数,其他类型转化为布尔型
二.运算符
1.算术运算符,用于执行两个变量的算术运算
符号 | 作用 |
---|---|
+ | 加 |
- | 减 |
* | 乘 |
/ | 除 |
% | 余 |
2.递增递减运算符
1.递增(++)分为前置运算符和后置运算符
(1)前置运算符++写在前面,先自加后返回值
(2)后置运算符++写在后面,先返回值后自加
2.递减(- -)和递加差不多
3.比较运算符
符号 | 作用 |
---|---|
< | 小于 |
> | 大于 |
>= | 大于等于 |
<= | 小于等于 |
=== | 全等,值和数据类型都相等 |
!== | 不全等 |
5.逻辑运算符
符号 | 作用 |
---|---|
&& | 逻辑与(全真则true,有假则false) |
// | 逻辑或(有真则真,全假则假) |
! | 逻辑非 |
6.赋值运算符
+=、=、*=、/=、%=
三.条件语句
1.if语句
//语法
if(条件表达式){
条件成立
}
2.if else语句
if(条件表达式){
条件成立}
else 条件不成立;
3.if else if语句
if(条件表达式){
执行1
}
if else(条件表达式){
执行2
}
else 以上都不满足
4.三元表达式(?:)
条件表达式?表达式1:表达式2
思路: 若表达式为真,则返回1,假则返回2
5.switch语句
switch(表达式){
case value1:执行语句1;
break;
.
.
.
default:以上都不满足
注意:使用switch时,值必须要全等,当case中无break时,会直接执行下一个case。
四.循环(可以重复执行某些代码)
1.for循环
for(初始化变量;条件表达式;操作表达式){
循环体
}
2.while循环
while(条件表达式){
循环体
}
3.do while循环
do{
循环体
}
while(条件表达式)
4.continue、break
continue用于跳出本次循环,继续下一个循环
break用于跳出整个循环(循环结束)
5.数组(一组数据的集合体)
1.数组的创建方式
(1)利用new创建数组
var 数组名= new Array();//创建一个新的空数组
(2)利用数组字面量创建数组
var 数组名:[];//空数组
2.数组中新增元素
(1)根据修改length长度
可以通过修改length长度来实现扩容的目的
(2)修改索引号(数组的下标)
可以通过修改数据索引的方式追加数组的元素
五.函数(封装了一段可以被重复执行调用的代码块)
1.函数的声明
function 函数名(){
函数体
}
2.调用函数
函数名()
3.函数的参数
function 函数名(形参1,形参2,...){
函数体
}
函数名(实参1,实参2,...)
4.函数中实参和形参不匹配的问题
(1)实参的个数大于形参的个数,会取到形参的个数
(2)形参的个数大于实参的个数时会定义为undefinded,结果为NaN
5.函数的返回值
function 函数名{
return 需要返回的结果
}
return是一个终止函数,return后的代码不会执行,return只能返回一个值,return可以返回一个数组。
6.arguments的使用(只有函数体有arguments对象,且每个函数中都内置了这个对象)
arguments 中存储了所有传递过来的参数,是一个伪数组,可以遍历所有的参数。
function fn(){
alert(arguments);
}
fn(1,2,3)
//结果为[1,2,3]
7.函数的两种声明方式
1.利用关键字自定义函数
2.函数表达式(匿名函数)
var 变量名=function(){
函数体
}
变量名();
六.作用域
代码名字在某个范围内起作用和效果
全局作用域:整个script标签或者是一个单独的js文件
局部作用域:在函数内部起效果和作用
块级作用域{}:if(),for()
作用域链:内部函数访问外部函数的变量,采取链式查找的方式决定取哪一个值(就近原则)
七.预解析
js引擎运行分为两步:预解析 代码执行
1.预解析分为变量预解析(变量提升)和函数预解析(函数提升)
(1)变量提升:将所有变量声明提升到当前的作用域的最前面,不提升赋值操作
(2)函数提升:将所有的函数声明提升到当前作用域的最前面,不调用函数。
八.对象
对象是一个具体的事物,一组无序的相关属性和方法的集合
属性:事物的特征
方法:事物的行为
1.创建对象
(1)对象字面量创建对象
var obj={
num = 1,
age = 2,
};//创建了一个对象
里面的属性和方法采用了键值对的方法。键:属性名 值:属性值。多个属性或者方法中间用逗号隔开,方法冒号后面跟的是一个匿名函数
(2)利用new object()创建对象
var obj = new object();//创建了一个空对象
obj.num = 1;
obj.age = 18;
利用等号=赋值的方法添加对象的属性和方法、每个属性和方法之间用;隔开
(3)利用构造函数创建对象
function 构造函数名(){
this.属性:值;
this.方法:function(){
}
}
var obj = new 构造函数名();
构造函数的首字母要大写,调用构造函数必须使用new,属性和方法的前面必须添加this。
2.使用对象
调用对象的属性:对象名.属性名
调用属性的另一种方法:对象名['属性名']
调用对象的方法:对象名.方法名()
3.遍历对象属性
for in语句用于对数组或对象进行循环操作
//for(变量in对象){
//}
for(var k in obj)
{
alert(k);//得到属性名
alert(obj[k]);//得到属性值
暂时就学到这儿咯