30 May 18 Javascript语法基础

Posted zhangyaqian

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了30 May 18 Javascript语法基础相关的知识,希望对你有一定的参考价值。

30 May 18

# 图片太多,详细见link 以及文本

一、每日面试(知识复习)

1、问:执行完下面的代码后,  l,m的内容分别是什么?

def func(m):

    for k,v in m.items():

        m[k+2] = v+2

m = {1: 2, 3: 4}

l = m  # 浅拷贝

l[9] = 10

func(l)

m[7] = 8

print("l:", l)

print("m:", m)

 

# 报错:dictionary changed size during iteration

# (python3.6)在迭代一个列表或字典的时候,你不能修改列表或字典的大小

 

2、= 、 切片 、copy 、deepcopy

import copy

 

list1 = [11, 22, [33, 44]]

list2 = list1

list3 = list1[:]

list4 = copy.copy(list1)

list5 = copy.deepcopy(list1)

list1[2].append(55)

print("list2:",list2)  # [11, 22, [33, 44, 55]]

print("list3:",list3)  # [11, 22, [33, 44, 55]]

print("list4:",list4)  # [11, 22, [33, 44, 55]]

print("list5:",list5)  # [11, 22, [33, 44]]

print(id(list1))  # 4363819976

print(id(list2))  # 4363819976

print(id(list3))  # 4363820104

print(id(list4))  # 4363820040

print(id(list5))  # 4363834760

# 前几种是拷贝了一个连接地址,原列表改变后,这几种列表中的值根据连接取值,相应都作出变化。后一种(深拷贝)是开始就自建了一个空间,原列表中的值改变,其不跟着变化。

 

3、注释(规范化)

1、# TODO:在传git前会提示(这里没有考虑到)

    

    2、行内注释balabala # balabala

    

    3、单行注释# balabala

    

    4、多行注释\'\'\' \'\'\'

    

    5、函数、类内部注释

    def foo(name, age):

        """

        这个函数是干什么用的?

        :param name: 用户名,必须是字符串类型

        :param age:

        :return: None

        """

        print(name)

        print(age)

 

4、join连接列表的元素(只能连接字符串)

list_tmp = [11, 22, 33, 44]

    list_tmp2 = ["Alex", "DSB", "hehe", "haha"]

    ret1= "".join(list_tmp2)

    ret2= ",".join([str(i) for i in list_tmp])

    print(ret1) # AlexDSBhehehaha

    print(ret2) # 11,22,33,44

 

5、python中的三元表达式(三元运算)

# 如果n > m,我就把n的值赋值给x,否则就把m的值赋值给x

n = 10

m = 5

x = n if n > m else m

print(x)  # 10

 

二、今日内容

Blog链接:https://www.cnblogs.com/liwenzhou/p/8004649.html

1. JavaScript是什么?

    一门轻量级的编程语言;运行在浏览器上的脚本语言。

   node.js  可以写后端。

 

2. JavaScript都学哪些内容?

   1. 语法基础

   2. BOM(document object model文档对象模型)--> 用JS代码操作浏览器

   3. DOM (browser object model浏览器对象模型)--> 用JS代码操作HTML文档

 

3. JavaScript的运行方式?

   1. 导入方式:

       1. 在HTML文件中写一个script标签,在script标签中直接写JS代码

       2. 将JS代码写在一个单独的JS文件中,然后通过script标签的src属性导入

 

 

   2. 可以直接在浏览器的console窗口直接运行JS代码

   3. node.js 运行JS文件  *(现在了解即可)

 

4. JavaScript学什么?

   0. 语法规则

       1. 单行注释  //

       2. 多行注释  /* 多行注释*/

       3. 结束符 ;

 

   1. 变量

       1. 变量名:可以使用_,数字,字母,$组成,不能以数字开头

           1. 变量名是区分大小写的。

2. 推荐使用驼峰式命名规则。

3. 保留字不能用做变量名。

       2. 声明变量

           1. var

 

           2. let(ES6新增):所声明的变量只在let命令所在的代码块内有效。

例如:for循环的计数器就很适合使用let命令。

 

           3. const(ES6新增):用来声明常量。一旦声明,其值就不能改变。

 

 

   2. 数据类型

       1. 字符串

           字符串的常用属性和方法

 

 

 

 

# substring不支持负数,slice支持负数,一般用slice切片

Substring(0,-2) -> substring(-2,0)->substring(0,0)->’’

 

 

# shift + enter 换行

 

· ·(反引号)在ES6中不报错; 若·· ·报错,按上述设置成ES6 或在js文件开头加一行:

/* jshint esversion: 6 */

ES6中引入了模板字符串。模板字符串(template string)是增强版的字符串,用反引号(`)标识。它可以当做普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量。

 

       2. 数值

           1. JS中不区分整型和浮点型,都叫数值类型

 

           2. NaN表示一个值不是数值(是数值类型,但表示不是一个数字not a number;当字符串转成数字时,可能会出现NaN)

 

           3. 将字符串类型的数据转换成数值

                parseInt("100")

                parseFloat("11.11")

       3. 布尔值(""(空字符串)、0、null、undefined、NaN都是false)

          true false

 

 

       4. Null

           手动将变量的值清空的时候name=null

       5. Undefined

           变量光声明但是没有赋值的时候; 函数无明确返回值时

       6. Object(JavaScript 中的所有事物都是对象:字符串、数值、数组、函数...此外,JavaScript 允许自定义对象)对象时带有属性和方法的特殊数据类型

           1. 数组

                TODO: sort()排序 (详情见明日课程)

           2. 数组的内置属性和方法

 

# sort将数组中的元算转成字符串,然后一位一位的对比排序

 

 

 

 

 

 

Console.log() 相当于print()

 

       判断一个变量的类型:

           typeofnull      --> object

           typeof [11,22]   --> Object

           typeof undefined --> undefined

# typeof是一个一元运算符(就像++,--,!,- 等一元运算符),不是一个函数,也不是一个语句。

 

 

    3. 运算符

       1. 算术运算符

 

% 取余

       2. 逻辑运算符

 

       3. 比较运算符

           1. 弱等于 "5" == 5  --> true

           2. 强等于 "5" === 5 --> false

 

       4. 赋值运算符

 

   4. 控制语句

       1. if ... else ...

 

       2. if ... else if ... else ...

 

       3. switch () {

            case 1:

            ...

            break;

        }

# switch主要用于一个变量一个值的比较情况下

 

 

#一定要加break,否则程序会继续执行后续case中的语句

 

       4. for

 

 

       5. while

 

       6. 三元运算

 

 

 

   5. 函数

       1. 函数的定义

           1. 普通函数

 

           2. 带参数的函数

 

 

           3. 带返回值的函数

 

 

# 如果return后跟多个值,返回最后一个

           4. 匿名函数

 

           5. 自执行函数(立刻执行函数)

 

           6. 箭头函数

 

 

# 如果箭头函数不需要参数,或需要多个参数,用()代表参数部分

       2. JS函数的坑

           1. 默认的返回值是undefined

 

           2. 调用函数时传参随意

 

           3. 只能有一个返回值

 

      3、 函数内置的arguments对象

 

         4、练习题

 

以上是关于30 May 18 Javascript语法基础的主要内容,如果未能解决你的问题,请参考以下文章

2017.11.30 React基础语法之一JSX

ES6语法基本使用

Nginx状态码499

30.Python前端基础之BOM和DOM

为啥 Python 的装饰器语法比普通的包装器语法提供更快的记忆代码?

JavaScript