• 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、练习题

  • 相关阅读:
    说说爬虫分享
    飞机大战改进篇
    Unity WebGL WebSocket
    2048 控制台版(C#)
    C++多小球非对心弹性碰撞(HGE引擎)
    Unity中如何计算带minimap的贴图资源的大小
    【原】Unity 骨骼节点对象优化,AnimatorUtility.OptimizeTransformHierarchy
    ios sdk agree 无法通过,升级Mac系统到10.14,并且升级Xcode到最近版本后遇到
    【原】高光贴图参数放入颜色贴图的alpha通道中
    KBEngine游戏服务器(二)——运行Unity的Demo
  • 原文地址:https://www.cnblogs.com/zhangyaqian/p/py20180530.html
Copyright © 2020-2023  润新知