定义前端

定义前端

综述

Web 和移动应用开发过程一般包含以下步骤

  • (1) 用户在浏览器(客户端)里输入或者点击一个链接
  • (2) 浏览器向服务器发送 HTTP请求
  • (3) 服务器处理请求,如果查询字符串或者请求体里含有参数,服务器也会把这些参数信息 考虑进去
  • (4) 服务器更新、获取或者转换数据库里的数据
  • (5) 服务器以HTML、JSON或者其他格式返回一个 HTTP响应
  • (6) 浏览器接收 HTTP响应
  • (7) 浏览器以HTML或者其他格式(比如JPEG、XML或者 JSON)把 HTTP响应呈现给用户

移动应用和普通网站

  • 移动应用的行为动作与普通网站相同,只不过原生应用取代了浏览器
  • 其他主要区别为:带 宽带来的数据传输限制、更小的屏幕、更高效地使用本地存储

HTML

概述

  • HTML本质上不是编程语言,而是一组用来描述内容结构和格式的标记
  • HTML标签由一对 尖括号以及括号内的标签名组成
  • 大多数情况下,内容会包含在一对开始标签和结束标签之间, 结束标签的标签名前有一个斜杠(/)
  • 所有其他元素都是 html 标签的子标签

元素属性

  • class

    • class 属性定义了一个类,以便于使用 CSS给元素添加样式或者进行 DOM操作

      ...

  • id

    • id 属性定义了元素的 ID,作用有点像 class,但是必须是唯一的

  • style

    • style 属性定义了一个元素的内联 CSS

      ...

  • title

    • title 属性为元素指定了一些额外信息,在大多数浏览器里这些信息均是以小提示条的形式 呈现的

      ...

  • data-name

    • data-name 属性可以用来在 DOM中存储一些元数据

      ...

  • onclick

    • onclick 属性意味着在点击事件发生时,内联的 JavaScript代码将运行

      ...

  • onmouseover

    • 鼠标悬停事件触发

      ...

  • 其他与内联 JavaScript代码相关的 HTML属性

    • onfocus:当浏览器的焦点聚集在某个元素上时触发
    • onblur:当浏览器的焦点离开一个元素时触发
    • onkeydown:用户按下键盘上的键时触发
    • ondblclick:用户双击鼠标时触发
    • onmousedown:用户按下鼠标时触发
    • onmouseup:用户释放鼠标时触发
    • onmouseout:用户将鼠标移开元素区域时触发
    • oncontextmenu:用户点击鼠标右键时触发
  • 注意:内联 CSS和 JavaScript不是好方案,我 们会尽量避免内联

CSS

概述

  • CSS 是一种控制内容呈现和格式的方式

  • CSS 的三种引入方式

    • 内联式css样式

      • 内联式css样式表就是把css代码直接写在现有的HTML标签中

        这里文字是红色。

      • css样式代码要写在style=""双引号中,如果有多条css样式代码设置可以写在一起,中间用分号隔开(英文状态下;)

    • 嵌入式css样式

      • 在head元素内style属性内写,此样式可以被当前页面中元素使用

    • 外部式css样式

      • 在单独CSS文件中写的样式,那个网页引用该文件就能复用该样式

  • 定位元素

    • 在 CSS 里可以通过元素的 id、class、标签名,以及它与父级标签的关系或者元素属性值来定位元素

    • id

      • 如:通过 id main 定位一个 div,并设置它的内边距

        main

    • class

      • 如:把所有拥有类 large 的元素字体大小设置为 14pt

        .large

    • 标签名

      • 如:把所有的段落(p 标签)的颜色变成了灰色

        p

    • 父子标签关系

      • 如:div 是 body 元素的直接子元素;现在要隐藏下标签 div

        body > div

    • 元素属性值

      • 如:设置 name 属性为 email 的 input 元素的宽度为 150px

        input[name="email"]

JavaScript

使用方式

  • 最简单使用方式

    • 把 JS代码放进 HTML文档的 script 标签里

  • 引入外部的 js 文件

    • 通过设置 script 标签的源属性 src="filename.js"来引入外部的 js 文件

  • 其他运行 JavaScript 代码的方式

    • 内联的代码
    • 使用Webkit的浏览器开发者工具和 FireBug控制台
    • Node.js的交互命令行

JavaScript 对象/类(本身没有类;对象继承自对象)里一些主要的类型

  • 数值原始值

    • 数值

      var num = 1;

  • 数值对象

    • 数值对象和它的方法

      var numObj = new Number("123"); //数值对象
      var num = numObj.valueOf(); //数值原始值
      var numStr = numObj.toString(); //字符串表示

  • 字符串原始值

    • 包含在单引号或者双引号之间的字符序列

      var str = "some string";
      var newStr = "abcde".substr(1,2); 
      // stringObject.substr(start,length)
      // substr() 方法可在字符串中抽取从 start 下标开始的指定数目的字符。

  • 字符串对象

    • 字符串对象有很多非常有用的方法,比如 length、match

      var strObj = new String("abcde");//字符串对象 
      var str = strObj.valueOf(); //字符串原始值 
      strObj.match(/ab/);
      str.match(/ab/); //两种调用都可行 
      // match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配

  • 正则表达式对象

    • 正则表达式对象是特殊的字符模式,以方便搜索、替换以及测试字符串

      var pattern = /[A-Z]+/;
      str.match(/ab/);

  • 特殊类型

    • 可以使用 typeof 对象来看看它的类别

      NaN ,null ,undefined, function

  • 全局方法

    • 可以在代码的任意地方调用这些方法,因为它们是全局方法

      1 decodeURI
      2 decodeURIComponent
      3 encodeURI
      4 encodeURIComponent
      5 eval
      6 isFinite
      7 isNaN
      8 parseFloat
      9 parseInt
      10 uneval
      11 Infinity
      12 Intl

  • JSON

    • JSON库帮助我们序列化和解析 JavaScript对象

      var obj = JSON.parse('{a:1, b:"hi"}');
      var stringObj = JSON.stringify({a:1,b:"hi"});

  • 数组对象

    • 数组是从 0 开始索引的列表。如创建一个数组

      var arr = new Array();
      var arr = ["apple", "orange", 'kiwi"]; 
      // 数组有一些非常好用的方法,比如 indexOf、slice、join

  • 数据对象

    var obj = {name: "Gala", url:"img/gala100x100.jpg",price:129} 
    或 
    var obj = new Object();

  • 布尔原始值和对象

    • 就像字符串和数值,布尔值既可以是原始值,也可以是对象

      var bool1 = true;
      var bool2 = false;
      var boolObj = new Boolean(false);

  • 日期对象

    • 日期对象帮助我们处理日期和时间

      var timestamp = Date.now();
      // 1368407802561
      var d = new Date();
      //Sun May 12 2013 18:17:11 GMT-0700 (PDT)

  • 数学对象

    • 数学常量和一些方法

      var x = Math.floor(3.4890);
      var ran = Math.round(Math.random()*100);

  • 浏览器对象

  • DOM对象

    document.write("Hello World");
    var table = document.createElement('table'); 
    var main = document.getElementById('main');

函数式和原型语言是 JS的另一个重要特性

  • 一般的函数声明语法

    function Sum(a, b) {  
    var sum = a + b;  
    return sum;
    }
    console.log(Sum(1, 2));

  • 函数可以用作变量和对象

    • 比如,一个 函数可以作为另一个函数的参数传递

      var f = function(str1) {  
      return function(str2) {  
      return str1 + ' ' + str2;  };
      };
      var a = f('hello');
      var b = f('goodbye'); console.log((a('Catty')); console.log((b('Doggy'));

对象继承方式

  • 类式继承
  • 伪类继承
  • 函数式继承
posted @ 2020-11-02 22:47  颗粒成仓  阅读(137)  评论(0)    收藏  举报