JavaScript学习笔记

第一章 JS的基本认识

        JS主要是用于开发交互式网页

        其中 html 是 结构 ,css 是 样式 ,JS 是行为

        而JS中的 ECMAScript 是 基本语法,DOM 是 文档对象模型,BOM 是  浏览器对象模型

        JS语法中的所有语句都要写在<script></script>标签中

        标签引用(弹出对话框):alert(" ")

alert("测试")

        文件引用 :src

        页面输出:document.write(" ");

document.write("测试");

        控制台输出(网页中按F12或右键-检查进入控制台):

                1. console.log();//最常用

                2. console.info(); 

                3.console.warn();

                4.console.error();

        注释:

                1.JS中单行注释:        //        (快捷键为Ctrl+?)

                2.JS中多行注释:        /* */

                3.HTML中注释:        <!-- -->        (快捷键为Ctrl+?)

                4.CSS中注释:        /* */

第二章 JS的变量

        声明变量

                关键字和保留字符不能做为变量名

                在JS中声明变量用 :var、let

var a;

       JS中的标识符 

                标识符指的是用来识别各种值的合格名称,最常见的标识符是变量名

                标识符是由:字母,$,下划线和数字组成,其中数字不能开头

                中文是合法标识符,可以用作变量名,但不推荐

       JS中的数据类型

                JS中有五种基本数据类型:String(字符串),Number(数值型),Boolean(布尔型),Undefined(undefined),Null(null型)。

                除了这五种类型以外的类型都叫Object,总的来说JS共有六种数据类型。

                typeof运算符:使用typeof操作符可以用来检查一个变量的数据类型。

                格式为:typeof 数据;

console.log(typeof 123);

                Number中特殊的数字:infinity(正无穷),-infinity(负无穷),NaN(非法数字:Not a Number)。

                Undefined类型只有一个值:undefined

第三章 JS中的类型转换

        转换为String类型

                将其他数值转换为字符串类型有三种方法:toString() 、String() 、拼串

        方法一

                      调用被转换数据类型的toString()方法,
                      该方法不会影响到原变量,
                      它会将转换的结果返回,
                      但是注意:null和undefined这两个值没有toString()方法,如果调用它们的方法,会报错。

        方法二

                     调用String()函数,并将被转换的数据作为参数传递给函数

                     使用String()函数做强制类型转换时,对于Number和Boolean实际上就是调用的toString()方法。                                                                                                                                 

                     但是对于null和undefined, 就不会调用toString()方法,它会将 null 直接转换为 “null”,将 undefined 直接转换为 “undefined”。

        方法三

                       拼串,方法如其名。

        转换为Number类型

                将其他数值转换为数值共有三种方法:Number()、parseInt() 和parseFloat()。

                Number()可以用来转换任意类型的数据,而后两者只能用于转换字符串。parseInt()只会将字符串转换为整数,而parseFloat()可以将字符串转换为浮点数。

        

        方式一

                        使用Number()函数

                         字符串 -->数字

                                如果是纯数字的字符串,则直接将其转换为数字
                                如果字符串中有非数字的内容,则转换为NaN
                                如果字符串是一个空串或者是一个全是空格的字符串,则转换为0

                        布尔-->数字

                                true 转成 1
                                false 转成 0

                        null --> 数字

                                null 转成 0

                        undefined --> 数字

                                undefined 转成 NaN

        方式二

                        这种方式专门用来对付字符串,
                        parseInt() 把一个字符串转换为一个整数

         方式三

                        这种方式专门用来对付字符串,
                        parseFloat() 把一个字符串转换为一个浮点数

        注:在利用parseInt()、parseFloat()和Number()进行数据类型转换时,若数据开头有正负号时,会被当成正负数进行转换,如'-123'会被转换为-123。使用parseInt()或parseFloat()将字符串转换为数字时,若字符串开头部分可被识别为数字,则转换为相应的数字;若字符串末尾部分有非数字字符,则这些非数字字符会被自动忽略;若字符串开头部分无法被识别为数字,则转换为NaN。

        注意:如果对非String使用parseInt()或parseFloat(),它会先将其转换为String然后在操作

        转换为Boolean类型

                将其它的数据类型转换为Boolean,只能使用Boolean()函数。

                数字 --> 布尔

                        除了0和NaN,其余的都是true

                字符串 --> 布尔

                        除了空串,其余的都是true

                null和undefined --> 布尔

                        null和undefined都会转换为false

                对象 --> 布尔

                        对象也会转换为true

第四章 JS中的运算符

        比较运算符

                比较运算符用来比较两个值是否相等,如果相等会返回true,否则返回false。

                使用 == 来做相等运算

                         相等用来比较两个值时是否相等,如果值的类型不同,则会自动进行类型转换,将其转换为相同的类型,然后再比较。

                使用 != 来做不相等运算

                        不相等用来判断两个值是否不相等,如果不相等返回true,否则返回false,不相等也会对变量进行自动的类型转换,如果转换后相等它也会返回false。

                使用 === 来做全等运算

                        用来判断两个值是否全等,它和相等类似,不同的是它不会做自动的类型转换,如果两个值的类型不同,直接返回false。

                使用 !== 来做不全等运算

                        用来判断两个值是否不全等,它和不相等类似,不同的是它不会做自动的类型转换,如果两个值的类型不同,直接返回true。

        条件运算符

                三目运算符

                        语法:variablename=(condition)?value1:value2;

                        举例:result=(age<18)?"年龄太小":"年龄合适";

                        执行流程:如果condition为true,则执行语句1,并返回执行结果,如果为false,则执行语句2,并返回执行结果。

        运算符优先级

                      一级          .  、     []    、   new
                      二级         ()
                      三级         ++    、   --
                      四级         !   、  ~   、+(单目)   、   -(单目)   、typeof   、void   、delete
                      五级         %   、   *    、   /
                      六级         <<   、   >>    、   >>>
                      七级         <   、   <=   、   >    、  >=
                      八级         ==   、   !==   、===
                      九级         &
                      十级         ^
                      十一级     v   |
                      十二级     &&
                      十三级     ||
                      十四级     ?:
                      十五级     = 、+= 、-=  、*=  、/=  、%=  、<<=  、>>= 、 >>>=   、&=   、^=   、|=
                      十六级     ,

第五章 JS中的选择与循环

        选择语句:if / switch

                单分支选择语句格式     

if(布尔表达式){
    语句块
}

                双分支选择语句格式

if(布尔表达式){
    语句块1
}else{
    语句块2
}

                多分支选择语句格式

if(布尔表达式1){
    语句块1
}else if(布尔表达式2){
    语句块2
}else{
    语句块3
}

                switch选择语句格式

switch(选择的东西){
    case 东西1:    语句块1    ;break;
    case 东西2:   语句块2   ;break;
    case 东西3:    语句块3    ;break;
    case 东西4:   语句块4   ;break;
    case 东西5:    语句块5    ;break;
    case 东西6:    语句块6   ;break;
    default:    语句块7    ;
}

        循环语句:for / while / do while

                for循环格式

for(初始化变量;循环条件;变量变化){
    循环体
}

                while循环格式

初始化变量;
while(循环条件){
    循环体;变量变化;
}

                do while循环格式

                        (特点为无论如何先执行一次循环体)

初始化变量;
do{
    循环体;变量变化;
}while(循环条件)

 

第六章 JS中的数组

        数组的概念

                在JS的数组中可以存放任何类型的元素

        创建数组的两种方式

                1.通过new Array() 方式创建数组

var arr = new Array();	//空数组 
var arr = new Array(3);	//含有三个空元素
var arr = new Array('语文','数学','英语');	//含有三个元素

                2.使用数组字面量创建数组

var empty = [];		//[]相当于new Array()
var arr = ['语文','数学','英语','历史'];	//含有4个元素

        两种创建方法的区别

                使用[] 可以创建含有空存储位置的数组

                使用new Array() 不可以创建含有空存储位置的数组

        数组的长度—length

                使用 数组名.length 可以获取数组长度,数组长度为数组元素最大下标加1

                使用 数组名.length = 数字 可以修改数组长度

        访问数组

var arr = ['hello','JavaScript',22.48,true];
console.log(arr);		//输出整个数组
console.log(arr[0]);		//输出数组中第一个元素
console.log(arr[1]);		//输出数组中第二个元素
console.log(arr[2]);		//输出数组中第三个元素
console.log(arr[arr.lenght-1]);	//输出数组中最后一个元素

 

第七章 JS中的事件

        用户在页面上操作,网页调用函数来处理

      事件的模式

                JS中有两种事件实现模式:内联模式和脚本模式

                1.内连模式

                       直接在HTML标签中添加事件,最传统简单的处理方式,但是这种模式中事件和HTML是混写的,并没有将JS和HTML分离,当代码增多会影响代码的维护和扩展。

<input type="button" value="按钮" onclick="alert('hello');" />

//执行自定义的JS函数
<input type="button" value="按钮2" onclick="btnClick();" />

                注意:内连模式调用的函数不能放到window.onload里面。否则会找不到该函数。

                2.脚本模式

                        脚本模式能将JS代码和HTML代码分离,符合代码规划。使用脚本模式我们需要先获取元素节点对象,再针对该节点对象添加事件。

                        可以通过三种方式来获取节点对象:

                                getElementById()

                                getElementsByTagName()

                                getElementsByName()

var box = document.getElementById('box');

//添加事件方式1:通过匿名函数,可以直接触发对应代码(推荐使用)
box.onclinck = function(){
    console.log('Hello world!');
};

//添加事件方式2:通过指定的函数名赋值的方式来执行函数
box.onclick = func;
function func(){
    console.log('Hello world');
};

        事件处理的构成 

                1.出发时间的元素节点对象

                2.事件处理函数

                3.事件执行函数

//例:单击文档任意处

document.onclick = function(){
    console.log('单击了文档的某一个地方');
};

        在上方的程序中

                document:是触发事件的对象,表示触发事件的元素所在

                onclick:表示一个事件处理函数(on+事件类型click)

                function:匿名函数是被执行的函数,用于执行事件后执行

        事件的分类

                JS可以处理的事件种类有三种:鼠标事件,键盘事件,HTML事件

                1.鼠标事件

                        页面所有元素都能触发鼠标事件

                        onclick:点击事件
onclick = function(){
    console.log('单击了鼠标');
}
                        ondblclick:双击事件
ondblclick = function(){
    console.log('双击了鼠标');
}
                        onmousedown:按下鼠标不松开触发
onmousedown = function(){
    console.log('按下鼠标');
}
                        onmouseup:松开鼠标时触发
onmouseup = function(){
    console.log('松开了鼠标');
}
                        onmouseover:鼠标移入某个元素触发
onmouseover = function(){
    console.log('鼠标移入了');
}
                        onmouseout:当鼠标移出某个元素触发
onmouseout = function(){
    console.log('鼠标移动了');
}
                        onmouseenter:当鼠标移入某个元素那一刻触发
onmouseenter = function(){
    console.log('鼠标移入了');
}
                        onmouseleave:当鼠标移出某个元素那一刻触发
onmouseleave = function(){
    console.log('鼠标移出了');
}

 

第八章 JS中的函数

        函数按设定分类

                按设定分类分为:自定义函数和内置函数

                自定义函数的语法格式                    

function 函数名([参数1,参数2,...]){
    函数体
}

         注:在自定义函数时,即使函数的功能的实现不需要设置参数,小括号也不能省略

        函数按参数列表分类

                按参数列表分类分为:有参函数和无参函数

                无参函数的语法格式

                        无参函数适用于不需要提供的任何数据即可完成指定功能的情况。

function greet(){
    console.log("Hello everybody!");
}

        特殊函数

                箭头函数

                        ES6中新增的函数,它用于简化函数定义的语法,其语法格式为: ()=>{}         

                        箭头函数的小括号可以传入参数,调用箭头函数时可以将箭头赋给一个变量,然后通过变量名实现箭头函数的调用。

var jianTou=(num1,num2)=>{
    return num1+num2;
}

                回调函数

                        是由开发者预先定义好的一个函数,通常会作为参数传递给被调用的函数,当被调用的函数执行时,会在特定的时机调用开发者传入的回调函数

//例子:做饭并添加调味料

function cooking(flavour){
    //厨师做饭
    var food = '鱼香肉丝';
    food = flavour(food);
    return food;
}

var food = cooking(function(food){
    return food += '特辣';
});

console.log(food);

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值