JavaScript笔记

2019-08-27  本文已影响0人  Sonoface

JavaScript 输出

JavaScript 没有任何打印或者输出的函数。
JavaScript 显示数据
JavaScript 可以通过不同的方式来输出数据:

对象属性

可以说 "JavaScript 对象是变量的容器"。
但是,我们通常认为 "JavaScript 对象是键值对的容器"。
键值对通常写法为 name : value (键与值以冒号分割)。
键值对在 JavaScript 对象通常称为 对象属性

对象方法

对象的方法定义了一个函数,并作为对象的属性存储。
对象方法通过添加 () 调用 (作为一个函数)。
该实例访问了 person 对象的 fullName() 方法:
如果变量在函数内没有声明(没有使用 var 关键字),该变量为全局变量。
以下实例中 carName 在函数内,但是为全局变量。
实例

// 此处可调用 carName 变量
function  myFunction()  {
  carName = "Volvo";
  // 此处可调用 carName 变量
}

字符串方法

更多方法实例可以参见:JavaScript String 对象

循环

JavaScript 支持不同类型的循环:

break

break 语句(不带标签引用),只能用在循环或 switch 中。
通过标签引用,break 语句可用于跳出任何 JavaScript 代码块:

typeof

你可以使用 typeof 操作符来检测变量的数据类型。
实例

typeof "John"                // 返回 string
typeof 3.14                  // 返回 number
typeof false                 // 返回 boolean
typeof [1,2,3,4]             // 返回 object
typeof {name:'John', age:34} // 返回 object

你可以使用 typeof 操作符来查看 JavaScript 变量的数据类型。
实例

typeof "John"                 // 返回 string
typeof 3.14                   // 返回 number
typeof NaN                    // 返回 number
typeof false                  // 返回 boolean
typeof [1,2,3,4]              // 返回 object
typeof {name:'John', age:34}  // 返回 object
typeof new Date()             // 返回 object
typeof function () {}         // 返回 function
typeofmyCar                  // 返回 undefined (如果 myCar 没有声明)
typeof null                   // 返回 object

如果对象是 JavaScript Array 或 JavaScript Date ,我们就无法通过 typeof 来判断他们的类型,因为都是 返回 object。

constructor

constructor 属性返回所有 JavaScript 变量的构造函数。

实例

"John".constructor                 // 返回函数 String()  { [native code] }
(3.14).constructor                 // 返回函数 Number()  { [native code] }
false.constructor                  // 返回函数 Boolean() { [native code] }
[1,2,3,4].constructor              // 返回函数 Array()   { [native code] }
{name:'John', age:34}.constructor  // 返回函数 Object()  { [native code] }
newDate().constructor             // 返回函数 Date()    { [native code] }
function() {}.constructor         // 返回函数 Function(){ [native code] }
**search()** **方法使用正则表达式**

实例
使用正则表达式搜索 "Runoob" 字符串,且不区分大小写:

var  str = "Visit Runoob!"; 
var  n = str.search(/Runoob/i);
//输出结果为:6

正则表达式修饰符

修饰符 可以在全局搜索中不区分大小写:


正则表达式模式
方括号用于查找某个范围内的字符:

元字符是拥有特殊含义的字符:

量词:

test()

test() 方法是一个正则表达式方法。
test() 方法用于检测一个字符串是否匹配某个模式,
如果字符串中含有匹配的文本,则返回 true,否则返回 false。
以下实例用于搜索字符串中的字符 "e":
实例

var patt = /e/;
patt.test("The best things in life are free!");
//字符串中含有 “e",所以该实例输出为  :true

exec()

exec() 方法是一个正则表达式方法。
exec() 方法用于检索字符串中的正则表达式的匹配。
该函数返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为 null。
以下实例用于搜索字符串中的字母 "e":

Example 1
/e/.exec("The best things in life are free!");
字符串中含有 “e”,所以该实例输出为 : e

比较运算符常见错误

在常规的比较中,数据类型是被忽略的,以下 if 条件语句返回 true:

var x = 10;
var y = "10";
if (x == y)

在严格的比较运算中,=== 为恒等计算符,同时检查表达式的值与类型,以下 if 条件语句返回 false:

var x = 10;
var y = "10";
if (x === y)

这种错误经常会在 switch 语句中出现,switch 语句会使用恒等计算符(===)进行比较:

以下实例会执行 alert 弹窗:

var x = 10;
switch(x) {
    case 10: alert("Hello");
}

并非真正的常量

const 的本质: const 定义的变量并非常量,并非不可变,它定义了一个常量引用一个值。
使用 const 定义的对象或者数组,其实是可变的。下面的代码并不会报错:
实例

// 创建常量对象
const  car = {type:"Fiat", model:"500", color:"white"};
// 修改属性:
car.color = "red";
// 添加属性
car.owner = "Johnson";

JavaScript** 闭包

还记得函数自我调用吗?该函数会做什么?
实例

var  add = (function  ()  {
  var  counter = 0;
  return  function  ()  {return  counter += 1;}
})();
add();
add();
add();
// 计数器为 3
上一篇下一篇

猜你喜欢

热点阅读