2018-11-02day05JS基础

2018-11-05  本文已影响0人  PythonLi

1.JS基础语法

//1.注释,单行
/*多行注释
*多行注释
/
//2.标识符
//js标识符就是用来命名的(给变量命名,函数命名,对象命名)
//js中要求标识符是字母数字下划线外加$组成,数字还是不能开头
//js中大小写敏感
var abc = 100
console.log(abc)
// console.log 在控制台打印括号中的内容,和print一样
//3.常用的数据类型
/

a.数字类型(Number)、布尔(Boolean)、字符串类型(String)、数组Array()、对象Object(),函数founction()
数字类型(Number)---包含所有的数字,整数和小数 ,支持科学计数法,不支持复数

    100,13.5,-99
    console.log(4e2)
    //布尔.
    true
    false
    //字符串(String)双引号或者单引号都可以
    'abc'
    "abc"
    //数组(Array),相当于python的列表
    var p2=[2,43]
    console.log(p2)
    //(object):python中对象和字典的结合,不一样的是这里的name,age是对象,值是属性

    var p1= {
        name:'小明',
        age:99          
    }
    console.log(p1)
    //founction(函数):相当于python中的函数
    function hanshu1(){
        console.log('我是函数')
    }
        hanshu1()
    /*
    b.typeof(数据)- 查看数据类型
    
    c. new 类型名(数据)--将数据转换成指定的类型
    
    d.常用的特殊值underfined(相当于python中的none) null(一般用来清空变量)
    */
    
    //4.格式 :js没有缩进的要求

2.JS中的变量

js变量
语法:
var 变量名
变量名 = 值

说明 :
var -是js关键字,声明变量的时候可以要var,也可以不用,但如果不要var变量就必须赋值,否则报错。
如果写了var变量可以不赋值,会返回underfined

变量名--标识符,不能是关键字。驼峰式命名规范 除了首单词首字母多个单词命名首字母大写

//声明变量
    var name1 = '小明'
    var name2
    name3 = '小花'
    
    //同时声明多个变量
    var age,sex='男',score=100
    console.log(sex,age,score)
    
    //变量中的值:可以赋任何其他类型的值。字符串,数字等等....
    age,name = '老年人','小花'
    console.log(age,name)

3.运算符

//js支持:数学运算符,比较运算符,逻辑运算符,赋值运算符,位运算符
    //1.数学运算符:+,-,*,%,++,--,**  -->不支持整除// 
    //++ (自加1),--(自减1)
    //变量++,变量--,++变量,--变量(变量必须要有值)符号在前在后都一样
    //注意赋值的时候++和--写在变量的前面和变量的后面对应的效果不一样

    var number = 10
    number++
    ++number
    --number
    console.log(number)

    //2.比较运算符:>,<,==,!=,>=,<=,===,!==,<==,>==
    //比较运算的返回值都是Boolean
    // ==(相等)----判断值是否相等
    //===(完全相等)----判断值和类型是否相等
    console.log(5==5)//T
    console.log(5=='5')//T
    
    console.log(5===5)  //T
    console.log(5==='5')//F

    //3.逻辑运算符:&&(与),||(或),!(非)
    //运算规则和python中的and、or、not一模一样
    
    //4.赋值运算符: = ,+= , -=  ,*= ,/= ,%=
    //和python一样
    
    //5.位运算符:&与 , |或 , ^异或 , ~取反,>>,<<
    //和python一样
    
    //6.符合运算:数学>比较>逻辑>赋值
    //可以通过加()来改变运算顺序

4.分之结构

JS中的分之结构有两种,分别是if结构和switch结构
1.if语句
结构:
if(条件语句):{
代码段1
}
说明:
if--关键字
(){}----固定写法
执行过程:
判断条件语句是否为true,为true就执行大括号{}中的内容。不管缩进问题。

b.if-else结构
if(条件1){
代码段1
}else{
代码段2}
和python中的执行过程一样
c.else if 结构和python中的elif节后一样
if(条件1){
代码段1
}else if(条件2){
}else if(条件3){
}else{
}
2.switch语句
switch(变量或者有值的表达式){
case 值1:{代码段1}
case 值2:{代码段2}
case 值3:{代码段3}
case 值4:{代码段4}
...
default:{代码段5}
}
执行过程:先计算表达式的值,然后从上往下一一和case后面的值进行比较,找到第一个和表达式的值相等的case的值
然后将执行后面所有case的代码段,直到执行完或者遇到break为止。
如果没有值和表达式的值一样,就执行default后面的代码段

 num =10
    switch(num){
        case 1:console.log('1')
        case 2:console.log('2')
        case 3:console.log('3')
        case 10:console.log('正确')
        case 11:console.log('我是11')
        break
        
        default:console.log('我是default')
    }
    //练习:输入0-6输出1-7
    
    switch (week){
        case 0:console.log('周一')break
        case 1:console.log('周二')break
        case 2:console.log('周三')break
        case 3:console.log('周四')break
        case 4:console.log('周五')break
        case 5:console.log('周六')break
        case 6:console.log('周日')            
    }

5.循环结构

for in 结构和python中的循环结构一样,不过这里的for in取出来的是序列元素的下标,如果是对象取出来的则是对象的key(属性名)
结构:
for 变量 in 序列{
循环体
}

for (x in 'abc'){
        console.log('abc'[x])
    }
    取出来的x是下标,在通过下标取 出来元素

b. C语言的for循环结构
for(表达式1;表达式2条件语句;表达式3){
循环体
}
直到思想:语句块之间要用分号隔开!语句块1里面写循环开始前的准备工作,例如声明变量,语句块1可以省略也可以设置多个值用逗号隔开。语句块2里面写执行循环体的条件。用来控制执行循环体的次数。语句块3用来改变初始变量的值,改变循环次数
执行过程:
先进入语句块1,判断条件2是否为true,如果为true就执行循环体,执行完成后进入语句块3,执行完语句块3后在判断2是否为true,如果为true就继续执行循环体,再进入3...以此类推直到2位false。循环就结束~

c. while循环和python中的while循环一样
结构:
while(条件){
循环体}
d. do while循环结构--->先执行一次循环体,在判断条件是否为true,为true就继续执行,直到false为止,至少能执行一次循环体
do{
循环体
}while(条件)
3.js中的break和continue和python中一样

6.函数

函数还是分为声明和调用,声明的时候不会执行函数体,调用的时候才会执行函数体
1.函数的声明,和python中一样
function 函数名(参数列表){
函数体
return 返回值
}
说明:
function是声明函数的关键字,
函数名 --驼峰式命名,见名知意
参数列表--如果没有设置默认值,相当于默认值为undefined
返回值--return或者undefined(none)

b.以声明变量的方式声明函数 这种相当于把函数名字放在前面。函数名 =。。。
函数名 = function (参数列表){
函数体
return 返回值
}

function sum(m,n){
        return m+n
    }
    console.log(sum(2,3))

调用:函数名(实参列表)
调用的时候参数少传多传不会报错,但还是保证每个都有就可以了。
只能通过位置参数传参,关键字参数无效,还是按照位置传参
js中不支持不定长参数

7.字符串

由单引号或者双引号括起来的
1.转义字符:和python中的一样
2.字符串长度: 字符串.length
3.获取单个字符:字符串[下标]
注意: 下标取值范围是0 ~ 长度-1;超出范围取到的是undefined;
js中没有切片语法

    //转义字符
    console.log('abc\n123')
    console.log('\tabc\'123')
    
    //字符串长度
    console.log('123abc'.length)
    
    //获取单个字符
    str1 = 'hello world'
    console.log(str1[1])

2.相关运算符
+ - 将两个字符串拼接在一起产生一个新的字符串
(注意如果是一个字符串加上其他的数据,会先将其他数据转换成字符串再相加)
js不支持*运算符
比较运算(>, <. ==, !=, ===, !==)
>、< - 和python一样,还是比字符编码值的大小

    console.log('abc'+'hnm')
    console.log('abc'+100, 'abc'+true, 'abc'+[1,2,3])
//  str1 = new String([10, 20, 30])
//  console.log(str1)

//  console.log('abc'*3)   // NaN -> not a number
//  console.log(10/0)   // Infinity -> 无穷大
    console.log('abc' > 'abaaaa')

js的正则表达式写在//两个斜杠之间。

8.数组

数组就是python中的列表
1.数组是有序,可变的,里面的元素可以是任意类型的数据
2.增删改查

a.查(获取数组中的元素) - 不支持切片
数组[下标]
数组.slice(开始下标, 结束下标) - 切片

    arr1 = [1, 2, 3, 'abc']
    console.log(arr1[3])
    //获取数组的长度
    console.log(arr1.length)
    
    
    result = arr1.slice(0, 2)
    console.log(result, arr1)
    
    /*
     b.增(添加元素)
     数组.push(元素) - 将元素添加到数组的最后
     */
    arr1.push('hello')
    console.log(arr1)
    
    /*
     c.删(删除元素)
     数组.pop() - 删除最后一个元素
     
     数组.splice(开始删除的下标, 删除的个数)  - 从数组指定的下标开始删除指定个数元素
     */
    arr1.pop()
    console.log(arr1)
    
    arr1.splice(2, 1)
    console.log(arr1)
    
    /*
     d.改(修改元素的值)
     数组[下标] = 新值  - 修改指定下标的元素
     
     数组.splice(开始下标,个数, 多个其他参数) - 用其他参数替换开始下标开始后的指定个数个元素
     */
    arr1 = [1, 2, 3, 4, 'abc']
    arr1[0] = 10
    console.log(arr1)
    
    arr1.splice(1,2, 'a','b', 'c')
    console.log(arr1)

9.对象

//js中没有python的类,只有对象和构造方法
/*1.对象的字面量
对象名 = {属性名:属性值, 属性名2: 属性值2...}
3.构造方法 - 用来创建对象的
function 类名(参数列表){
this.属性1 = 属性值1
this.属性2 = 属性值2
...

return this //这句话必须写
}
这儿的this类似python中的self,表示当前对象
这儿的this类似python中的self,表示当前对象

    function Person(name1, age1){
        //对象属性
        this.name = name1
        this.age = age1
        this.tel = ''
        this.sex = '男'
        
        //对象方法
        this.eat = function (food){
            console.log(this.name+'在吃'+food)
        }
        
        return this
    }
    
    p2 = Person('小明', 18)
    p2.tel = '1727839923'
    p2.eat('面条')
    
    p3 = Person('小花', 20)
    p3.sex = '女'
    p3.eat('面包')
    ~~~
上一篇下一篇

猜你喜欢

热点阅读