第十五章:Python の Web开发基础(二)

本課主題

  • JavaScript 介绍
  • DOM 介绍
  • jQuery 介绍

JavaScript 介绍

JavaScript 是一门编程语言,它可以让网页动起来的,JavaScript 的变量有两种,一个是局部变量;一个是全区变量。怎么分啦?

a = 123;    // 全区变量
var a = 123;  // 局部变量

JavaScript 的数据类型

JavaScript 的数字类型

  1. parseInt:

    y = "111"
    "111"
    
    r2 = parseInt(y)
    111

    parseInt( )

  2. parseFloat

JavaScript 的String 类型

  1. length: 找字符串的长度

    s1 = ‘janice‘
    // "janice"
    s1.length
    // 6

    s1.length

  2. charAt( )

    s1 = ‘janice‘
    s1.charAt(1)
    // "a"

    s1.charAt(1)

  3. indexOf( )

    s1 = ‘janice‘
    s1.indexOf(‘i‘)
    // 3

    s1.indexOf( )

  4. substring( )

    s1 = ‘janice‘
    s1.substring(1,4)
    // ani

    s1.substring(1,4)

  5. slice( )
  6. toLower( )
  7. toUpper( )

JavaScript 的数据类型

  1. 创建数组

    a = []
    a = [11,22,33,44,55]

    a = [ ]

  2. 在数组尾部追加数据:push(ele)

    a = [11,22,33,44,55,66]
    a.push(77,88,99)
    // 9
    
    a
    // [11, 22, 33, 44, 55, 66, 77, 88, 99]
    
    a.push([77,88,99])
    //10
    
    a
    //[11, 22, 33, 44, 55, 66, 77, 88, 99, Array[3]]

    a.push(ele)例子

  3. 在数组尾部获取数据:pop
  4. 在数组尾部获取数据:unshift(ele)
  5. 在数组尾部获取数据:shift
  6. join

JavaScript 的字典

  1. 创建字典

    a = {‘k1‘:123, ‘k2‘:456}
    //Object {k1: 123, k2: 456}

    JavaScript创建字典

  2. 序列化:把对象变成字符串

    a = {‘k1‘:123, ‘k2‘:456}
    JSON.stringify(a)
    //"{"k1":123,"k2":456}"

    JavaScript序列化

  3. 反序列化:把字符串变成对象

    b = ‘{"k1":123, "k2":456}‘;
    //"{"k1":123, "k2":456}"
    
    JSON.parse(b);
    //Object {k1: 123, k2: 456}

    JavaScript反序列化

  4. xxxx

JavaScript 的转义

  1. encodeURL
  2. encodeComponentURL
  3. decodeURL
  4. decodeComponentURL

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Js-s3</title>
</head>
<body>
    <script>
        var url = "https://www.sogou.com/web?query=宋仲基";
        var ret1 = encodeURI(url);
        var ret2 = encodeURIComponent(url);
        console.log(ret1);
        console.log(ret2);

        var u1 = decodeURI(ret1);
        var u2 = decodeURIComponent(ret2);
        console.log(u1);
        console.log(u2);

    </script>
</body>
</html>

JavaScript 转义

其他

  1. eval( )
  2. 时间处理,时间有两种:一种是 UTC; 一种是 GMT;

    d = new Date()
    // Sat Nov 26 2016 21:22:59 GMT+0800 (HKT)
    
    d
    // Sat Nov 26 2016 21:22:59 GMT+0800 (HKT)
    d.getFullYear()
    // 2016
    
    d.getHours()
    // 21
    
    d.getUTCDate()
    // 26
    
    d.getUTCHours()
    // 13
    
    d.setMinutes(d.getMinutes() + 2)
    //1480166699597

    JavaScript的时间处理

  3. xxxxx

JavaScript 的条件判断

  1. if-then-else
  2. switch case
  3. for loop

    <script type="text/javascript">
        var li = [11,22,33,44,55];
        for(var i = 0; i < li.length; i++){
            console.log(i,li[i]);
        }
    
        for(var item in li){
            console.log(item,li[item])
        }
    
        var dic = {‘k1‘:123, ‘k2‘:456};
        for(key in dic){
            console.log(key, dic[key])
        }
    </script>

    for loop例子

  4. while loop

JavaScript 的异常处理

Python 中的主动抛出异常

raise Exception(‘xxxxx‘)

JavaScript  中的主动抛出异常

throw new Error(‘xxxx‘)

JavaScript 的函数

  1. 普通函数
  2. 匿名函数
  3. 自执行函数

在 JavaScript 的世界没有块级作用域,但是它采用函数作用域,意思就是说如果你定义的变量在同一个函数里,不论里面有多少个块级,这个变量都可以给其他块级引用;但如果在 fun1( )定义了一个变量,在func2( )就不可以被引用了。

function f2(){
    var arg= 111;
    function f3(){
        console.log(arg);
    }
    return f3;
}
ret = f2();
ret();

JavaScript 作用域

JavaScript的作用域在执行之前已经创建,所以如果全区有一个变量和函数里有相同的变量时候,在调用函数时会调用函数里的,而不是全区的变量。在下面的代码例子中:

  1. 第一步:声明了一个全区的 xo = grandfather;
  2. 第二步:在代码还没被执行时作用域已经在内部定义好了,代码是从上往下被内部定义,定义了 xo = undefined
  3. 第三步:当函数被调用时,代码是从本身的函数作用域往前推来调用的。所以时次调用的结果是找到 inner( )的 xo 变量并打印,因为xo 被赋值成 ‘myself‘,所以结果是 ‘myself‘

代码编译时

代码执行过程

xo = ‘grandfather‘;
function func() {
    var xo = ‘father‘;
    function inner() {
        console.log(xo)
    }
    xo = ‘myself‘;
    return inner;
}

var ret = func();
ret();

JavaScript作用域例子

JavaScript 有一个特点,可以提前声明变量,它在编译的过程中会在一个函数里找所有的函数,然后提前声明为 undefined

function f1(){
    // xo = undefined
    console.log(xo)
    var xo = ‘janice‘
}

JavaScript提前声明

DOM 介绍

jQuery 介绍

參考資料

银角大王:Python开发【第十一篇】:JavaScript | Python开发【第十二篇】:DOM

金角大王:

时间: 2024-08-06 17:58:06

第十五章:Python の Web开发基础(二)的相关文章

第十四章:Python の Web开发基础(一)

本課主題 HTML 介绍 CSS 介绍 HTML 介绍 HTML 的头部份,重点: 定义HTML 的编码:<meta charset="UTF-8"/> 定义标题: <title name="'janice">s1</title> 定义标题旁边的图片:<link rel="shortcut icon" href="mikasa.icon" />  <head> <

第十七章:Python の Web开发基础(四) MVC与Django

本課主題 MVC 介绍 Django 介紹 MVC 介绍 controllers 处理用户请求 views 放置HTML模版 models 操作数据库 MVC框架就是目录的归类 MVC 是一种软件开发的方法,它把代码的定义和数据访问的方法(模型)与请求逻辑 (控制器)还有用户接口(视图)分开来 Django 介紹 Django开发的一般流程包括模型设计.URL设计.视图编码.模板设计,搭建Django应用的一种典型流程是:先设计好模型,然后就尽快把admin 运行起来,以便你的员工.客户可以尽快

第五模块:WEB开发基础 第3章&#183;BootStrap&amp;JQuery开发

01-JQuery介绍 02-jQuery文件引入和加载的区别 03-jQuery的基础选择器 04-jQuery的层级选择器 05-jQuery的基本过滤选择器 06-jQuery的属性选择器 07-jQuery的筛选选择器 08-jQuery的对象和DOM对象的转换 09-jQuery效果-显示和隐藏 10-jQuery的效果-slide 11-jQuery的效果-fade 12-jQuery的效果-animate 13-右下角弹出小广告 14-jQuery的属性操作-attr和prop 1

第十五章 Python多进程与多线程

15.1 multiprocessing multiprocessing是多进程模块,多进程提供了任务并发性,能充分利用多核处理器.避免了GIL(全局解释锁)对资源的影响. 有以下常用类: 类 描述 Process(group=None, target=None, name=None, args=(), kwargs={}) 派生一个进程对象,然后调用start()方法启动 Pool(processes=None, initializer=None, initargs=()) 返回一个进程池对象

Selenium基于Python web自动化基础二 -- 免登录、等待及unittest单元测试框架

一.免登录在进行测试的过程中难免会遇到登录的情况,给测试工作添加了工作量,本文仅提供一些思路供参考解决方式:手动请求中添加cookies.火狐的profile文件记录信息实现.人工介入.万能验证码.去掉验证码 1.手动在请求中添加cookies信息 1 url = "http://www.baidu.com" 2 driver = webdriver.Firefox() 3 driver.get(url) 4 time.sleep(3) 5 #添加cookies的方式 6 7 c1 =

MiS603开发板 第十五章 MCB DDR3内存测试

作者:MiS603开发团队 日期:20150911 公司:南京米联电子科技有限公司 论坛:www.osrc.cn 网址:www.milinker.com 网店:http://osrc.taobao.com EAT博客:http://blog.chinaaet.com/whilebreak 博客园:http://www.cnblogs.com/milinker/ MiS603开发板 第十五章 MCB DDR3内存测试 15.1 DDR3存储器模块及其测试 图像算法硬件最关键的一部分就是内存,内存保

深入浅出Zabbix 3.0 -- 第十五章 Zabbix 协议与API

今天是六.一儿童节,祝小朋友们节日快乐!发完此文就带我家小朋友出去玩耍了. 第十五章 Zabbix 协议与API 本章将介绍和开发相关的Zabbix协议和API的内容,通过对Zabbix协议和API的深入了解,你可以利用Zabbix协议编写客户端程序并将其嵌入的产品或系统中,并将数据发送到Zabbix server,这在无法安装Zabbixagent等程序的场景(例如专用的嵌入式系统)中非常有用.你也可以利用Zabbix API开发自己的业务系统,或灵活的与现有系统整合集成. 15.1 Zabb

《Python Web开发与接口测试》

为什么学习本书: 是否想学习Python web开发而找不到很好的入门教程. 是否很想知道当你点击一个按钮后,程序到底经过哪些过程把你想要的页面展现在你面前. 是否想告诉别人,不就是开发嘛,我也会. 是否想知道接口到底是什么,它是如何被开发出来的,我们又如何对它进行测试? 为什么是Django? 我们总是很难去决定一件事情.比如,我到底该学Java 呢还是C# 呢? 到底测试的工资高还是开发的高?我学习了Python之后,想学习web开发,是Django 还是Flask 好学.强大和灵活? 搞J

Gradle 1.12用户指南翻译——第二十五章. Scala 插件

其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Github上的地址: https://github.com/msdx/gradledoc/tree/1.12. 直接浏览双语版的文档请访问: http://gradledoc.qiniudn.com/1.12/userguide/userguide.html. 另外,Android 手机用户可通过我写的一个程序浏览文档,带缓存功能的,目前