小程序模板网

IOS程序员学微信小程序开发系列《五》:扩展阅读:javascript基础 ... ..

本篇仅为扩展阅读,让一部分人恢复记忆而用,并非完全可适用于微信小程序内;仅供参考,测试不可行后,请立刻停止并优先使用官方提供的方法;
第一部分:

1.HTML DOM (Document Object Model)

document.getElementById("some id"): 这样的document就是DOM对象
JavaScript 能够改变任意 HTML 元素的大多数属性

*注意:
html - dom - document
浏览器 - bom - window

2.match()函数

match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。

语法:
stringObject.match(searchvalue) :必需。规定要检索的字符串值。
stringObject.match(regexp):必需。规定要匹配的模式的 RegExp 对象。如果该参数不是 RegExp 对象,则需要首先把它传递给 RegExp 构造函数,将其转换为 RegExp 对象

我们可以使用全局匹配的正则表达式来检索字符串中的所有数字:

<script type="text/javascript">
    var str="1 plus 2 equal 3"
    document.write(str.match(/\d+/g))
</script>

3.Date()函数

Date()在js中直接调用结果:Sun Oct 09 2016 14:37:15 GMT+0800 (CST)var date = new Date();

var year = date.getFullYear();
var month = date.getMonth();
var day = date.getDay();
alert("今天是"+year+"年"+month+"月"+day+"日");

4.js对象:
{firstName:"John", lastName:"Doe", age:40, eyeColor:"blue"}
*注意: notation:n. 符号;乐谱;注释;记号法
json: javascript object notation

5.数据类型

JavaScript 有多种数据类型:数字,字符串,数组,对象等等

*注意:
16 + "你好" => "16你好"

5.JavaScript 使用Unicode字符集。
Unicode覆盖了所有的字符,包含标点等字符。
JavaScript 中,常见的是驼峰法的命名规则,如 lastName (而不是lastname)。

6.innerHTML与innerText 区别:

1)innerHTML:
  也就是从对象的起始位置到终止位置的全部内容,包括Html标签。
2)innerText:
  从起始位置到终止位置的内容, 但它去除Html标签


		
<div id="test"> 
   <span style="color:red">test1</span> test2 
</div>

获取id=test节点:
它的innerHTML就是:test1test2
它的innerText是:test1test2

*注意:
  innerHTML是符合W3C标准的属性,而innerText只适用于IE浏览器,因此,尽可能地去使用innerHTML,而少用
innerText,如果要输出不含HTML标签的内容,可以使用innerHTML取得包含HTML标签的内容后,再用正则表达式去除HTML标签,下面是一个简单的符合W3C标准的示例:
去除HTML标签后的文本

7.对代码行进行折行

document.write("你好 \ 是加尔!");

*注意:JavaScript 是脚本语言。浏览器会在读取代码时,逐行地执行脚本代码。而对于传统编程来说,会在执行前对所有代码进行编译。

8.声明

var carname;
在计算机程序中,经常会声明无值的变量。未使用值来声明的变量,其值实际上是 undefined。

在执行过以下语句后,变量carname的值将是 undefined:

var carname="Volvo";
var carname; // 在以下两条语句执行后,变量 carname 的值依然是 "Volvo":

9.JavaScript 对象

对象由花括号分隔。在括号内部,对象的属性以名称和值对的形式 (name : value) 来定义。属性由逗号分隔:

eg:var person={firstname:"John", lastname:"Doe", id:5566};



var person={
     firstname : "John",
     lastname  : "Doe",
     id        :  5566
 };

对象属性有两种寻址方式:



name=person.lastname;
name=person["lastname"];

*注意:键加""双引号也可以的



var person={
     firstname : "John",
     "lastname"  : "Doe",
     id        :  5566
 };

10.Undefined 和 Null区别

Undefined 这个值表示变量不含有值。
可以通过将变量的值设置为 null 来清空变量。
cars = null
person = null

之后alert(cars) 结果为null,注意不是undefined

11.声明变量类型

当您声明新变量时,可以使用关键词 "new" 来声明其类型:



var carname=new String;
var x=      new Number;
var y=      new Boolean;
var cars=   new Array;
var person= new Object;

JavaScript 变量均为对象。当您声明一个变量时,就创建了一个新的对象。

12.js的对象

1)键值对,对象属性
可以说 "JavaScript 对象是变量的容器"。
我们通常认为 "JavaScript 对象是键值对的容器"。
键值对在 JavaScript对象通常称为 对象属性。

对象键值对的写法类似于:
PHP 中的关联数组
Python 中的字典
C 语言中的哈希表

2)对象方法

对象的方法定义了一个函数,并作为对象的属性存储。
对象方法通过添加 () 调用 (作为一个函数)。

name = person.fullName(); // person.fullName() 调用person对象的方法,返回的值赋值给了name

JavaScript对象是属性和方法的容器

在微信小程序中:wx.request({


     url:"http://www.xxxx",
     method:'GET',
     data:{},
     header:{
         'Accept':'application/json'
     },
     success:function(res){
          that.setData({
                images:res.data
          })
     }
})

// wx.request();  调用函数.传入的是 js对象 {}

*注意:
函数属性作为一个方法访问与函数属性作为一个属性访问。



var person = {
    firstName: "John",
    lastName : "Doe",
    id       : 5566,
    fullName : function() {
       return this.firstName + " " + this.lastName;
    }
};

document.getElementById("demo").innerHTML = person.fullName();  // 方法访问
document.getElementById("demo").innerHTML = person.fullName;

13.JavaScript 变量的生存期

JavaScript 变量的生命期从它们被声明的时间开始。
局部变量会在函数运行以后被删除。
全局变量会在页面关闭后被删除。

14.向未声明的 JavaScript 变量分配值

如果您把值赋给尚未声明的变量,该变量将被自动作为全局变量声明。
carname="Volvo";
将声明一个全局变量 carname,即使它在函数内执行。

函数参数只在函数内起作用,是局部变量。

15.html中的全局变量

在html中,全局变量是window对象:所有数据变量都属于window对象



  1. function myFunction() {
  2. carName = "Volvo";
  3. }
  4. myFunction();
  5. //此处可使用 window.carName

注意:要先执行myFunction()之后才能使用全局变量carName

16.js事件

HTML 事件是发生在HTML 元素上的事情。 当在HTML 页面中使用 JavaScript时, JavaScript可以触发这些事件。

HTML 事件可以是浏览器行为,也可以是用户行为。

常见的html事件:

onchange:HTML 元素改变 onclick:用户点击 HTML 元素 onmouseover:用户在一个HTML元素上移动鼠标 onmouseout:用户从一个HTML元素上移开鼠标 onkeydown:用户按下键盘按键 onload:浏览器已完成页面的加载

17.js字符串

var answer = "He is called 'Johnny'";

1)alert(answer[13]) ; // ' 2)answer.length 3)特殊字符

在 JavaScript 中,字符串写在单引号或双引号来中。 "We are the so-called "Vikings" from the north." 如何解决以上的问题呢?可以使用反斜杠 () 来转义 "Vikings" 字符串中的双引号,如下: "We are the so-called \"Vikings\" from the north."

特殊字符的转义:



\'    单引号
\"    双引号
\\    反斜杠
\n    换行
\r    回车
\t    tab(制表符)
\b    退格符
\f    换页符

18.字符串可以是对象

通常,JavaScript 字符串是原始值,可以使用字符创建:var firstName = "John"

但我们也可以使用 new 关键字将字符串定义为一个对象:var firstName = new String("John")

不要创建String对象。它会拖慢执行速度,并可能产生其他副作用:



var x = "John";              
var y = new String("John");
(x === y) // is false because x is a string and y is an object.

1)字符串属性

constructor 返回创建字符串属性属性的函数
length 返回字符串的长度
prototype 允许您向对象添加属性和方法

2)字符串方法
charAt() 返回指定索引位置的字符 charCodeAt() 返回指定索引位置字符的 Unicode 值 concat() 连接两个或多个字符串,返回连接后的字符串 fromCharCode() 将字符转换为 Unicode 值 indexOf() 返回字符串中检索指定字符第一次出现的位置 lastIndexOf() 返回字符串中检索指定字符最后一次出现的位置 localeCompare() 用本地特定的顺序来比较两个字符串 match() 找到一个或多个正则表达式的匹配 replace() 替换与正则表达式匹配的子串 search() 检索与正则表达式相匹配的值 slice() 提取字符串的片断,并在新的字符串中返回被提取的部分 split() 把字符串分割为子字符串数组 substr() 从起始索引号提取字符串中指定数目的字符 substring() 提取字符串中两个指定的索引号之间的字符 toLocaleLowerCase() 根据主机的语言环境把字符串转换为小写,只有几种语言(如土耳其语)具有地方特有的大小写映射 toLocaleUpperCase() 根据主机的语言环境把字符串转换为大写,只有几种语言(如土耳其语)具有地方特有的大小写映射 toLowerCase() 把字符串转换为小写 toString() 返回字符串对象值 toUpperCase() 把字符串转换为大写 trim() 移除字符串首尾空白 valueOf() 返回某个字符串对象的原始值

19.js中的break与continue

break 语句可用于跳出循环。
break 语句跳出循环后,会继续执行该循环之后的代码(如果有的话):

continue 语句中断循环中的迭代,如果出现了指定的条件,然后继续循环中的下一个迭代。 该例子跳过了值 3:
eg:



for (i=0;i<=10;i++)
  {
      if (i==3) continue;
      x=x + "The number is " + i + "<br>";
   }

20.JavaScript typeof, null, 和 undefined

数组是一种特殊的对象类型。 因此 typeof [1,2,3,4]返回object。

在 JavaScript中 null表示 "什么都没有"。

用typeof检测 null返回是object。

可以设置为 null 来清空对象:
var person = null;

可以设置为 undefined 来清空对象:
var person = undefined;

在 JavaScript 中, undefined 是一个没有设置值的变量。
typeof 一个没有值的变量会返回 undefined。

Undefined和Null的区别:



typeof undefined             // undefined
typeof null                  // object
null === undefined           // false
null == undefined            // true

请注意:

NaN 的数据类型是 number
数组(Array)的数据类型是 object
日期(Date)的数据类型为 object
null 的数据类型是 object
未定义变量的数据类型为 undefined

21.JavaScript 类型转换

Number() 转换为数字, String() 转换为字符串, Boolean() 转化为布尔值。

22.JavaScript 数据类型

在 JavaScript 中有 5 中不同的数据类型:



string
number
boolean
object
function

3 种对象类型:



Object
Date
Array

2 个不包含任何值的数据类型:



null
undefined

23.JavaScript 类型转换

1)将数字转换为字符串



 String(x)         // 将变量 x 转换为字符串并返回
 String(123)       // 将数字 123 转换为字符串并返回
 String(100 + 23)  // 将数字表达式转换为字符串并返回

x.toString()
(123).toString()
(100 + 23).toString()

2)将布尔值转换为字符串

全局方法 String() 可以将布尔值转换为字符串。



String(false)        // 返回 "false"
String(true)         // 返回 "true"

Boolean 方法 toString() 也有相同的效果。



false.toString()     // 返回 "false"
true.toString()      // 返回 "true"

3)将日期转换为字符串

全局方法 String() 可以将日期转换为字符串。
String(Date()) // 返回 Thu Jul 17 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)

Date 方法 toString() 也有相同的效果。
Date().toString() // 返回 Thu Jul 17 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)

4)将字符串转换为数字




易优小程序(企业版)+灵活api+前后代码开源 码云仓库:starfork
本文地址:https://www.eyoucms.com/wxmini/doc/course/22912.html 复制链接 如需定制请联系易优客服咨询:800182392 点击咨询
QQ在线咨询