js基础

1.基本语法

1.控制台输出
console.log(输出内容) - 和print的功能一样

2.注释 - 和c一样
//单行注释
/*
*  多行注释
*/

3.标识符
由字母数字下划线和$组成,数字不能开头

4.行和缩进
从语法角度,js代码怎么换行和缩进都无所谓。js中通过{}来确定代码块

5.常见的数据类型:数字,布尔,字符串,数组,对象,函数
a.数字(Number) - 包含所有的数字,包含整数和小数,支持科学计数法,不支持虚数
b.布尔(Boolean) - 只有两个值true和false。这两个值是关键字;分别代表‘真’和‘假’
c.字符串(String) - 使用单引号或者双引号引起来的字符集
d.数组(Aeeay) - 相当于python中的列表
e.对象(object) - 相当于python中的字典和对象
f.函数(Function) - 相当于python中的函数

2.变量

1.变量声明
变量名=值
语法1:变量名=值
变量名-标识符,不能是关键字;驼峰式命名(第一个单词首字母小写,后面每个单词首字母大写);见名思意

语法2:var 变量名 = 值或者var 变量名
var - 声明变量的关键字
补充:js中两个特殊的值 - undefined(没有,空)和null(清空)

3.运算符

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

++,-- 都是单目运算符,使用方式:变量++/--,++/--变量

a.++  - 自加1运算;让变量本身值加1
b.--   - 自减1运算:让变量本身值减1

坑:用一个变量单独使用++/--的时候,++/--放前面和放后面效果一样;
如果是使用++/--运算的结果给另一个变量赋值,++/--放前面是先自加/自减在赋值
++/--放后面是先赋值在自加/自减

2.比较运算符:>,<,==,!=,<=,>=,===,!==
结果是布尔值
比较大小的和python一样
a.==:判断值是否相等
b.===:判断值和类型是否相等(完全相等),相当于python中的==,!==相当于python中的!=

3.逻辑运算符:&&(逻辑与)、||(逻辑或)、!(逻辑非)
运算规则和使用方式和python的逻辑运算一样

4.赋值运算符:=,+=,-=,*=,/=,%=
和python一模一样

5.三目运算符 - ?:
语法:
条件语句?值1:值2 - 判断条件语句的值是否为true,为true整个表达式的结果就是值1否则就是值2

4分之结构

js中的分之结构有两种:if 和switch
1.if 语句
a.if
if(条件语句){
    满足条件会执行的代码
}
b.if - else
if(条件语句){
    代码段1
}else{
    代码段2
}
c.if - else if - else
if(条件语句){
    代码段1
}else if(条件语句){
    代码段2
}else if (条件语句){
   代码段3
}else{
代码段4
}
执行过程和python一模一样

2.switch语句
a.结构:
switch(表达式){
      case 值1:
              代码段1
      case 值2:
              代码段2
      ···
     default:
               代码段3
}

b.执行过程:
使用表达式的值依次和后面每一个case后面的值进行比较,看是否相等。
找到第一个和表达式的值相等的case,将这个case作为入口,依次执行后面所有的代码
直到执行完成或者遇到break为止。如果每个case的值都和表达式的值不相等
就执行default后面的代码

注意:case后面必须是一个有结果的表达式
 a=10
     switch(a){
        case 5 :
            console.log('表达式1')
        case 6:
            console.log('表达式2')
        case 7:
            console.log('表达式3')
        case 10:
            console.log('表达式4')
        case 11:
            console.log('表达式5')
            //break
        default:
            console.log('表达式6')
        
     }

5.循环结构

js中有for循环和while循环两种
1.for循环
a.for  in 
结构:
for(变量 in 序列){
循环体
}
执行过程和python一样,但是变量取到的不是元素,而是下标/key(属性名)
序列 - 字符串,数组,对象

b.c的for循环
结构:
for(表达式1;表达式2;表达式3){
循环体
}
执行过程:先执行表达式1;判断表达式2的值是否为true,如果为true就执行循环体,执行完循环体在执行表达式3
然后判断表达式2是否为true,为true就执行循环体,执行完循环体,在执行表达式3
···
以此类推,直到表达式的结果为false为止(循环结束)

表达式1
while (表达式2){
       循环体
       表达式3
}

表达式1
for (表达式2){
       循环体
       表达式3
}

2.while循环
a.while循环
while (条件语句){
      循环体
}
执行过程和python一模一样

b.do-while循环
do{
    循环体
}while(条件语句)
区别:do-while的循环体至少会执行一次

6.函数

1.函数的声明
function 函数名(参数列表){
        函数体
}
js中的函数除了声明的关键字不一样,其他的都一样

参数可以设置默认值,也可以通过关键字参数来调用函数

2.函数的调用
函数名(实参列表)

js中所有的函数都有返回值,默认是undefined


3.匿名函数(函数的字面量)
函数名 = function(参数列表){函数体}

4.变量的作用域
a.全局变量:只要声明在函数外面的变量就是全局变量;在函数中以'变量名=值'的形式声明的变量就是全局变量

b.局部变量:以关键字var关键字声明在函数中的变量,才是局部变量

7.字符串

1.字符串运算
a.加法运算:做字符串拼接操作
注意:js中支持字符串和其他数据相加

b.比较运算:>,<,==,===,!=,!==
比较相等
比较大小:和python字符串比较大小的方式一样

c.字符串长度
字符串.length

2.相关方法
创建字符串对象

a.big方法
产生一个big标签,并且标签中的内容就是字符串中的值
b.charAt(下标)
获取指定下标对应的字符;相当于:字符串[下标]
c.字符串.charCodeAt(下标)
获取指定下标对应的字符的编码(js中的字符采用的也是Unicode编码)
d.字符串.concat(数据1,数据2......)
将字符串和多个数据依次连接在一起产生一个新的字符串(相当于+的功能)
e.字符串1.endswith(字符串2)
判断字符串1是否以字符串2结尾
f.字符串1.indexOf(字符串2)
获取字符串2在字符串1中出现的第一次的位置
g.字符串1.lastIndexOf(字符串2)
获取字符串2在字符串1中出现的最后一次的位置
h.字符串.match(正则表达式)
相当于python中re模块的match;匹配成功返回一个数组
i.字符串.repea(数字)
指定的字符串重复出现指定次数产生一个新的字符串(相当于python中的*)
j.字符串1.replace(正则表达式,字符串2)
将字符串1中第一个满足正则表达式的子串替换成字符串2
k.字符串.slice(开始下标,结束下标)
从开始下标获取到结束下标为止,步长是1
注意:这的下标可以是负数,代表倒数第几个
l.字符串1.split(字符串2)
将字符串1按照字符串2进行切割,返回一个数组

8.数组

1.加法运算:两个数组相加实质是将数组转换成字符串然后拼接

2.比较运算
==、===判断相等时判断地址石佛偶相等,和python中的is一样

3.数组长度:length属性

2.元素的增删改查
查:获取元素
a.获取单个元素
数组[下标] - 获取下标对应的元素
注意:负数的下标没有意义
b.切片:
数组.slice(开始下标,结束下标) - 返回一个新的数组
注意:结束下标取不到,下标可以时负数;开始下标要在结束下标的前面
c.遍历
for(index in fruits){
        console.log(fruits[index])
    }

增:添加元素
数组.push(元素) - 在指定的素组的最后添加指定的元素

删:删除最后一个元素
数组.pop() - 删除最后一个元素
数组.splice(下标,个数) - 从指定下标开始删除指定个数的元素

改:修改元素
数组[下标] = 新值 - 修改指定下标对应的值


3.相关方法
 数组.reverse()
倒序

数组.sort()
元素从小到大
注意:当判断一个数组纯数字,中位数不同的时候是先判断第一位,在判断第二位来排序......

数组.sort(函数) - 按指定规则对数组中的元素进行排序
函数的要求:两个参数(代表的是数组中的两个元素),一个返回值(两个元素或者两个元素的属性的差)

数组.join (字符串)
将指定的字符串插入到数组的每个元素之间产生一个新的字符串

9.对象字面量

1.对象字面量
用大括号括起来,里面是多个属性,属性名和属性值之间用冒号连接,多个属性之间用逗号隔开
注意:1).对象字面量需要保存 2).属性名可以加引号也可以不加(没有区别)

2.获取对象属性对应的值
1)对象[属性名]
2)对象.属性

3.增:添加属性
1)对象.属性 = 值
2)对象[属性] = 值
属性不存在就是添加

4.构造方法 - 创建对象的方法
语法
function 类名 (参数列表){
        对象属性
        对象方法
}
说明:
a.对象属性:this.属性名 = 值
b.对像方法:this.方法名=匿名函数
c.类名:首字母大写
这的this相当于python中的self

5.创建对象
对象=new 构造方法()
注意:js中声明全局变量实质都是添加给window对象的属性

6.添加类的全局的属性
类名.prototype.属性名 = 属性值 - 给指定的类的所有对象添加属性

//7.系统的对象和类
    //document对象
    //window对象
    //Element类型的对象
    //date类型的对象
    //。。。。
    //创建时间对象
    date1 = new Date()
    console.log(date1)
    //年
    year = date1.getFullYear()
    //月 - 从0开始
    month = date1.getMonth()
    //日
    day = date1.getDate()
    //时
    hours = date1.getHours()
    //分
    min = date1.getMinutes()
    //秒
    seconds = date1.getSeconds()
    //星期
    week = date1.getDate()

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