day05-js基础

1.认识js

1.1.js是javaScrip的缩写,是一门脚本语言。专门用来负责网页上的行为(可以直接写到网页中)。

1.2.在哪儿写js代码

a.可以写在script标签中(理论上script标签可以放在html中任何位置,实际开发的时候一般放在head或者body中)
b.写到标签的事件属性中(例如:onclick)
c.写到外部的js文件中(.js)

1.3.js在网页中能做什么事情

a.在网页的不同的位置插入html代码
b.修改某个标签的内容
c.修改标签的样式




    
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
    
    
        
        

奥法当哦

2.js基础语法

2.1.js中的注释

//这是单行注释
/*
这是js多行注释
*/

2.2.语句

一条语句结束需要加分号(现在的js版本也可以不用写)
一行写多条语句必须用分号隔开

2.3.js没有缩进问题,用{}表示一个块

//在控制台中打印括号中的内容,功能如print
console.log('hello js');
console.log('oh my gad');

function print(){
    console.log('it is very funly')
}

2.4.基本数据类型

Number(数字)、String(字符串)、Boolean(布尔)、Array(数组)--列表、Object(对象)--字典、Function(函数)、null、undefined

2.5.字面量

//数字字面量
89;10.11;3e8;

//字符串字面量
'abc';"bcd";

//布尔字面量
true;false

//数组字面量
[55, 88, 'kkk', true];[];

//对象的字面量(对象的key值又是属性,不用加引号)
{a:'coan'};
var dict = {a:'afas', b:'adocn'}
console.log(dict.a, dict['b'])

2.6.标识符

//使用标识符来命名
//a.字母、数字、_和$组成,数字不能开头
var cao_$;

//b.不能是关键字
//var for

//c.大小写敏感,区分大小写
var For

//d.规范:1.见名知意;2.驼峰原则

3.变量的声明

3.1.在js中可以通过声明变量来保存数据

a.语法
var 变量名;
var 变量名 = 初值;
说明:var是关键字;
变量名:标识符,不能随意使用_或者$开头,驼峰式命名规则(第一个单词首字母小写,后面每个单词首字母大写)

//说明变量
var userName 
//给变量赋值
userName = 'xxx'
console.log(userName)

var score = 100
console.log(score)

//同时说明多个变量
var name, age, sex;
name = 'abc';age = 18;

//一个变量可以存储任意类型的值,声明变量的时候,变量没有赋值,默认是undefined
var a = 100;
a = 'abc';

4.运算符

4.1.数学运算符:+,-,*,/,%,++,--

//a.和数学运算一致
var a = 10 + 20;
var b = 10 - 20;
var c = 10 * 20;
var d = 7 % 2;

//b / 和数学中的除一样 
var e = 5/2;
console.log(e);

//c.++,--(单目运算符)
/*
 * 语法:变量++/--  ++/--变量(注意:运算顺序是从左往右运算)
 * ++:自加1
 * --:自减1
 */
var f = 10;
f++;
console.log(f)

console.log(f++)  // ++/--写到后面时,先赋值,再自加/自减
console.log(++f)  // ++/--写到前面时,先自加/自减,再赋值

4.2.比较运算符:>, <, ==(相等), !=, >=, <=; ===(完全相等), !==, >==, <==

  • 结果都是布尔值
console.log(10 > 20);  // false

//==:判断值(内容)是否相等
console.log(5==5);  // true
console.log(5=='5');  // true

//===:判断值和类型是否相等
console.log(5===5);  // true
console.log(5==='5');  // false

console.log(5!=5, 5!='5');  //false, false
console.log(5!==5, 5!=='5');  //false, true

4.3.逻辑运算符:&& || !(与 或 非)

console.log(true&&false);

4.4.赋值运算符:=, +=, -=, *=, /=, %=

//赋值运算符的左边必须是变量
var cc = 100;

cc += 10;
cc -= 10;
cc *= 10;
cc /= 10;
cc %= 10;
console.log(cc);

4.5.三目运算符:

  • a.语法 条件语句 ? 值1:值2
  • b.结果 判断条件语句,true - 值1; false - 值2
var dd = 10 > 20 ? 100:200;
console.log(dd);

//求两个数之间的最大值
var a1 = 10;
var a2 = 20;
console.log(a1 > a2 ? a1:a2)

4.6.运算符的优先级,可以通过括号来改变

  • 优先级从低到高:赋值运算符<逻辑运算符<比较运算符<算数运算符
  • 算术运算中:先幂运算再乘除取余再加减
  • 逻辑运算中:先与再或
    如果不确定运算顺序,可以通过添加括号来改变运算顺序。

5.分之结构

js中的分之结构有两种:if语句,switch语句

5.1.if语句

  • a.if(条件语句){条件语句为true时执行的代码块}
var age = 18;
if(age>=18){
    console.log('成年');
};
  • b.if(条件){代码块1}else{代码块2}
if(age>=19){
    console.log('成年');
}else{
    console.log('未成年');
}
  • c.if- else if - else
if(age<=12){
    console.log('童年');
}else if(age>=18){
    console.log('老年');
}else{
    console.log('少年');
}

5.2.switch语句

  • a.结构
    switch(变量) {
    case 值1:代码块1;break;
    case 值2:代码块2;break;
    ...
    default:代码块3; break;
    }
  • b.执行过程:使用变量的值依次和后面的每个case的值进行判断,看是否完全相等(===)
    如果完全相等就执行case后面的语句,直到遇到break。
    如果没有匹配的就执行default后面的语句。
var score = 10;
switch (score){
    case 1:
        console.log('F');
        break;
    case 4:
        console.log('D');
        break;  
    case 10:
        console.log('A+');
        break;
    default:
        console.log('其它');
        break;
}
console.log('==========');

6.循环结构

js中的循环分为for循环和while循环

6.1.for循环

  • a.for - in(和python中的for循环一样)
    for(变量 in 字符串/数组/对象){循环体}
var arr1= [1, 2, 'abc']
//x 取的是下标
for (var x in arr1){
    console.log(arr1[x])
}

var obj1 = {name:'xxx', age:18}
// x 拿到的是属性名
for(var x in obj1){
    console.log(x, obj1[x])
  • b.for(表达式1;表达式2;表达式3){循环体}
    执行过程:执行表达式1,然后判断表达式2,如果为true,执行循环体,执行表达式3; 继续判断表达式2;如果为true,再执行循环体,然后执行表达式3;直到表达式2为false,循环结束。
//计算1-100的和
var i = 1;
var sum = 0;
for(i; i<=100;i++){
    sum += i;
}
console.log(sum);

6.2.while循环

  • a.while(条件语句){循环体}
    过程:先判断条件语句,如果为true,执行循环体,循环体执行完以后,再判断条件语句;直到条件语句为false,循环结束。
var i = 1;
var sum = 0;
while(i<101){
    sum += i;
    i++;
}
console.log(sum);
  • b.do-while循环:do{循环体}while(条件语句);
    执行过程:先执行循环体,然后判断条件是否成立,如果成立再执行循环体。直到条件不成立,循环结束。
var i = 1;
var sum = 0;
do{
    sum += i;
    i++;
}while(i<101);
console.log(sum);

6.3.break和continue

  • break和continue两个关键字,都是作业与循环,用来结束循环的。
  • continue:在循环体中遇到continue,就结束本次循环,直接进入下次循环判断。
var i = 0;
while(i<10){
    if(i>5){
        continue;
    }
    console.log(i);
}
  • break:在循环中遇到break,就直接结束整个循环,直接执行循环后边的其它语句。
    注意:break结束的是距离它本身最近的那个循环。
for(var i = 0;i<10;i++){
    console.log(i);
    break;
}

7.函数

7.1.函数的声明

  • function 函数名(参数列表){函数体}
    a.function - 关键字
    b.函数名 - 标识符:驼峰式:见名知义
    c.参数(个数必须确定):形参可以有默认值(带默认值的参数放到最后)。调用函数传参的时候是按实参的位置传参。保证每个参数都有值
    d.函数体:实现函数的功能。只有再调用的时候才执行
function sum1(num1, num2){
    console.log('求两个数的和');
    return num1 + num2;
}
console.log(sum1(5, 11));
console.log(sum1(4));

函数没有return或者return后面没有内容的时候,函数的返回值是undefined

function fun1(){
    return;
    console.log('hhhhh');
}

console.log(fun1());

7.2.函数的调用

函数名(实参列表)

  • 调用过程:
    a.回到函数声明的地方
    b.将实参传递给形参
    c.执行函数体
    d.将返回值返回给函数的调用者
    e.回到函数调用的位置

7.3.作用域

  • 全局变量:声明在函数外面的变量(从变量声明到文件结束)
  • 局部变量:声明在函数里面的变量(从变量声明到函数结束, 函数的形参也是局部变量)

//全局变量
var aaa = 10;
function func2(){
    //局部变量
    var bbb = 100;
    console.log(aaa);
    console.log(bbb);
    //函数中可以修改全局变量的值
    aaa = 200;
    
    //函数中可以声明函数
    function func22(){
        bbb = 1.1;
        console.log(bbb);
    }
}
func2()
console.log(aaa);

//可以将函数作为变量
console.log('============')
var a = func2;
a();

8.数据类型

数字、字符串、布尔、数组(列表)、对象

8.1.数字:包含整数和小数(支持科学计数法)

var num1 = 10;
var num2 = new Number();
console.log(num2+1);

8.2.字符串

//a.''和""括起来的字符串
//b.转义字符(和python一样,没有阻止转义(r/R))
//c.字符编码是unicode编码
var str1 = 'abc';
var str2 = "bcd";
var str3 = '\n';
var str4 = '\\';
console.log(str4);

//e.获取字符串长度:字符串。length
console.log(str1.length);

//f.获取单个字符:字符串[下标]
//下标:1.范围是0~长度-1   2.如果越界,不报错,但是结果是undefined
//js中的字符串不能切片
console.log(str1[0]);

//g.运算符
//js中字符串只支持+,不支持*
//字符串1 + 字符串2 -- 拼接字符串
//js中字符串可以和其它任何数据进行加操作,其效果都是字符串连接(会将其它数据类型转换成字符串)
console.log('123' + 'abc', 'abc' + 100);

//h.字符串相关方法(查)

8.3.对象,构造方法(相当于 - 类)

var obj1 = {name:'xxx', age:18};
console.log(obj1.name, obj1['name']);

//声明构造方法
function Person(name='', age=0, sex='男'){
    this.name = name;
    this.age = age;
    this.sex = sex;
}
var p1 = new Person('abc', 18);
p1.name = 'xxx';
console.log(p1, typeof(p1))

你可能感兴趣的:(day05-js基础)