JS基础第一节

作者: 空谷悠 | 来源:发表于2017-01-11 22:47 被阅读63次

一、简单了解和基础知识

1.js引入方式

第一种:直接在body标签下面引入js文件或者直接在下面写js代码;

第二种:直接在body标签里面引入js文件或者直接在里面写js代码;

第三种:直接在head标签里面引入js文件或者直接在里面写js代码;但是因为代码的执行顺序是从上到下的,避免js代码最先被执行,所以要在script标签里面加上window.onload=function(){},在这个里面写入代码。

2.js注释

单行注释的双斜杠//

多行注释/****/

注释的作用:节约交流和阅读成本

3.用于代码调试

console.log()和alert()都可以用于调试代码,但是alert会阻断线程的执行,所以不经常使用。

document.write()如果文档输出写在当前页面加载完毕之后,那么当前页面会被关闭,会新开一个页面输出信息。

4.js变量的命名规范

什么是变量?什么是常量(直接量)?

程序运行期间可以发生改变的量就是变量。

自始至终在程序的运行过程中不能改变的量就是常量。常量放在常量区,常量区的值有且只有一份,所以不能改变。

变量的命名规范:

①以数字、字母、下划线、$符组成,并且数字不能开头。

②不能以关键字或者保留字命名。

③见名知义,驼峰命名法。

④区分大小写。

⑤区别于c语言,变量名可以重复命名,但是后面的会覆盖前面的。

声明一个变量为空,有空间没有值    var  num=null;

声明一个未定义的变量,没有值没有空间    var num1;

5.js数据类型

number   string   object  undefined  boolean

类型转换有两种:显式类型转换(强类型转换)        隐式类型转换(弱类型转换)

显式类型转换(强类型转换)的例子:

String()可以将一个数值转换为字符串

var   a=123;

console.log(String(a),typeof  String(a));//123,string

Number()可以将字符串转换为数值类型,要么字符串全是数字,要么字符串数字加一个小数点,小数点只能有一个,如果有多个,转换后的结果是NaN,但是还是number类型。如果字符串里面包含了字母,并不是全数字,那么转换后的就不是数字,而是NaN,但是还是number类型。

var   str="123";

console.log(Number(str),typeofNumber(str));//123,number

var  str1="123abc";//有字母转换不了

console.log(Number(str1),typeofNumber(str1));//NaN,number

parseInt将字符串转换成整型数字。必须满足第一个字符为数字,将从第一个字符取到第一个不是数字的字符为止。

var  str3="12.3abc";

console.log(parseInt(str3));

与parseInt对应的是parseFloat取得浮点型

隐式类型转换(弱类型转换)的例子:

运算符重载:+号会根据式子两边式子的类型采取行为,如果两边是数值,相加,如果两边是字符串,拼接,如果一边是数值一边是字符串也是拼接。

取正操作:将数字字符串,转换成数值,必须保证全部为数字字符,否则将不起作用

var  num2="12";

console.log(typeof  +num2);

纯数字的字符串减0,也可以得到数字

var   a="12";

console.log(typeof  a-0);

隐式类型转换,先转换再运算:

var   a="12";

var   b="10";

alert(a-b);  //7

var   a=5,b="5";

alert(a==b);//true

alert(a===b);//false       === 就是不转换类型,直接比较

6.js运算符

js是弱类型语言,只有数值类型,没有分浮点型和整型之分。

算术运算符 +,—,*,/,%,++,--

复合运算符 +=,-=,/=,*=,%=

关系运算符  >    <    <=     >=     ===    ==    !=      !==          !=和==对立,!==和===对立

逻辑运算符    逻辑与&&      逻辑或 ||           逻辑非 !取反

三目运算符,也叫条件运算符:var a=表达式1?表达式2:表达式3;

如果表达式1结果为真,a结果为表达式2的值,如果表达式1结果为假,a结果为表达式3的值。相当于if else语句

逻辑与 && 链接的表达式。如果前面的表达式为真,整体的值,与最后一个表达式有密切的关系。如果最后一个表达式有算术表达式链接,就是一个具体的数值。如果最后一个表达式由关系运算符链接,就是true或者false。如果最后一个表达式是0,就是0。一假则假,前面为假,后面就不走了。

逻辑或         同假为假          一真即真

只要是用关系运算符链接的表达式,返回的值类型都是boolean值

==只需要满足值相等就为真,不判断类型,还有一种理解就是,== 先转换类型,然后比较

var        istrue=(3=="3");//true

var          istrue=(3!="3");//false 

===数值和类型都相等才为真,不仅数值要相等,类型也要相同,=== 不转换类型,直接比较

var         istrue=(3==="3");//false

var         istrue=(3!=="3");//true

num++,  num+=1,   num=num+1

++在前先++再赋值,++在后先赋值再++

先赋值再运算(i++就是i=i+1)

var    b1=11;

b2=b1++;//先把b1的值赋给b2,b1在加1

console.log("b2的值是"+b2,"b1的值是"+b1)//11    12

var   c1=11;

c2=++c1;//c1先加1,再赋值给c2+

console.log("c2的值是"+c2,"c1的值是"+c1)//12   12

赋值运算符“=”,将等号右边的值 赋值 给左边

多个打印内容区分时,以逗号隔开

可以单独打印变量或者常量的值,逗号隔开

可以打印格式化字符串,中间使用占位符%d %f %s ,带占位符的打印,带占位符的要放在第一个

7.js元素获取

1.通过ID名称获取,因为ID名不能重复,所以获取的元素唯一

var    div=document.getElementById("myDiv");

2.通过标签名称获取元素,得到的是一个数组(就算只有一个值,也是一个数组)。如果想要将数组中的其中某一个取出来,必须需要用到数组下标。数组下标从0 开始,最大是数组长度减一。

var    first=document.getElementsByTagName("div")[0];

3.通过行间属性name获取元素,得到的也是一个数组

var    secondbtn=document.getElementsByName("btn")[1];

4.通过标签的类名获取元素。获取到得也是一个数组

var    p=document.getElementsByClassName("text")[1];

5.通过元素的css选择器获取元素,选择器的名称一定要写全,并且css选择器名称都可以写在里面,如果获取到多个元素,只会选取第一个。

var    myDiv=document.querySelector("#myDiv");

6.通过元素的css选择器名称获取元素,但是获取的是一个数组,使用的时候需要加下标

var    myDiv3=document.querySelectorAll(".test")[0];

8.通过js给元素加类名

给元素加类名后,类名相当于重新赋值,所以会覆盖原来的类名,要想原来的类名也起作用,就要把原来的类名也写上。多个类名中间用空格隔开

myDiv.className="test text";

使用animate.css,就是采用添加类名的方法

在head里面引入文件

<link   rel="stylesheet"    type="text/css"      href="css/animate.css"/>

在script里面加类名

var   div=document.getElementsByTagName("div")[0];

div.onmouseover=function(){

this.className="animated shake"

//this.style.animation="shake 2s";

}

div.onmouseout=function(){

//this.style.animation="bounce 2s";

this.className="animated bounce";

}

9.事件绑定

1.点击事件

div.onclick=function(){

alert("hahaha!");

}

2.鼠标移入事件

div.onmouseover=function(){

//this永远指向所在函数的所有者,如果没有所有者时指向window

this.style.width="800px";

}

3.鼠标移除事件

div.onmouseout=function(){

this.style.height="400px";

}

4.window.onload事件,load事件: 当页面完全加载后再window上面触发.一般用于head中的script代码段.保证在执行js代码之前, 页面已经完全加载完毕.如果没有在页面加载完毕,将获取不到元素。

UI事件指的是那些不一定与用户操作有关的事件.


二、js分支结构

1.布尔类型

布尔类型,代表非真即假的一种数据类型。它的值只有两个,true真或false假。非0即为真。0是假的,字符串“0”是真的。空为假,null是假

布尔类型的命名规则:
习惯以is,has,can开头  例如:isTrue isBoy isHight isLoading hasMoney hasBoyFriend canFly    canEat

2.js分支语句

分支语句其实有两种,if语句,switch语句

if语句有三种形式:

第一种:if(条件表达式){语句},当条件表达式为真时执行语句,否则什么都不执行

第二种:if(条件表达式){语句一}else{语句二},当条件表达式为真时执行语句一,否则为假执行语句二

第三种:if语句集联式,if(条件表达式1){语句一}else if(条件表达式2){语句二}else{语句三}。当条件表达式1为真执行语句一,当条件表达式1为假,并且条件表达式2为真,执行语句二,否则执行语句三

如果是比较字符串之间的大小,就先从第一位开始比较,第一位最大的就是最大的

所以如果获取的值是字符串,要转换成数字

使用switch通常用来解决多分支,并且多分支的情况是值是确定的。case 里面的值是具体的。

var      num=10;

switch(num){

case    10:

alert(num);

//break;

case    0://如果第一个满足条件,没有break,就会接着执行第二个,

//并且不需要进行判断,只到找到break再终止

alert("哈哈哈");

break;

default:

alert("呵呵呵");

break;

}

var   n=8;

switch(n){

case8:

case9:

case10:

case11:

alert(num);

break;

default:

alert("呵呵呵");

break;

}


三、js循环结构

什么是循环?当满足特定时,反复执行同一段代码就是循环。

for循环   while循环    do..while循环

循环必不可少的四部分:
1.循环变量初始化;2.循环条件;3.循环增量;4.循环执行的语句

1.while循环

while(条件表达式){循环语句}    当条件满足表达式的时候,反复执行语句,直到条件表达式为假跳出循环

var  a=1;

while(a<101){

if((7!=a%10)&&(0!=a%7)&&(7!=parseInt(a/10))) {

console.log(a);

}

a++;

}

2.do..while..循环

do{循环语句}while(条件表达式)

先执行语句,再判断是否满足循环条件,如果满足继续循环,否则跳出循环

var  num=1;

do{

if(num%7==0) {

console.log(num);

}

num++;

}while(num<101);

while循环与do..while..循环的区别在于,while循环先判断再执行,可能出现一次都不执行的情况,do..while..循环先执行再判断,至少会执行一次

3.for循环

for (循环变量初始化;循环条件;循环增量) {循环语句}

通过判断循环条件是否成立,决定是否执行循环语句。

for循环的执行次数为:不满足条件的第一个值减去满足条件的第一个值除以循环增量

for(var   i=1;i<101;i++) {

if(i%7==0) {

console.log(i);

}

}

for循环与数组的联合使用非常方便。

数组有容量,数组还有下标,这两个一个作为循环条件,一个作为循环变量

for循环用于知道循环次数的情况

while循环用于只知道循环条件的情况,未知循环次数的情况

do...while循环不常用

4.js循环控制

continue跳出本次循环,循环继续

break结束本层循环,循环终止

var   sum=0;

for(var   i=1; i<101; i++) {

if(i%2==0) {

continue;

}

sum+=i;

}

console.log(sum);

for(var    i=1; i<101; i++) {

console.log(i);

if(i%13==0) {

break;

}

}

相关文章

  • 2018-09-11

    vue.js第一节9月10日vue.js基础、v-for循环、v-modv-el双向绑定、v-on事件、table...

  • JS基础第一节

    一、简单了解和基础知识 1.js引入方式 第一种:直接在body标签下面引入js文件或者直接在下面写js代码; 第...

  • React-Native 随笔

    学习基础: js的基础知识, rect.js基础 JSX语法基础 FlexBox布局 安装 安装node.js下载...

  • 最新web前端相关课程学习链接

    js基础篇 js进阶篇 js高级篇 vue基础篇 vue高级篇 react基础 react高级 Nodejs基础 ...

  • web前端 -- Day23 js高级

    js基础 JavaScript简称:JS JS分三个部分: ECMAScript标准---基础的语法 DOM D...

  • 前端JavaScript面试技巧

    1-1 课程概述 要做什么?——讲解前端 JS 基础面试题 哪些部分?——JS 基础,JS-WEB-API,JS ...

  • 4/07day28_js基础

    day28_js基础 回顾 JS基础语法 JS运算符 JS流程控制语句 条件语句 JS的条件语句和Java语法基本...

  • 2018-12-20

    1.01.尚硅谷_JS基础_JS简介(1) 10.10.尚硅谷_JS基础_Null和Undefined(10) 1...

  • JS基础和WebAPIs的关联性

    学习ECMAscript标准规定的基本语法掌握JS基础语法只学习JS基础做不了网页交互效果学习JS基础语法是为了后...

  • 2019-07-27 前端面试题

    1.js的基础类型 js的基础类型包括 Undefined , Null , String ,Number ,...

网友评论

    本文标题:JS基础第一节

    本文链接:https://www.haomeiwen.com/subject/uqnhbttx.html