Javascript 教程 在线

490JavaScript字符串

双引号" " 中用单引号 ' ' 可以不用加反斜杠,例如:

var x="my name 'is' xxx"  // 此处不需要加反斜杠

双引号" " 中用双引号 " " 需要加反斜杠,例如:

var x="my name \"is\" xxx"  // 此处需要在两个上引号前各加一个加反斜杠

单引号 ' ' 中用双引号" " 不需要加反斜杠,当然加了也可以,例如:

var x1 ='my name "is" xxx'     // 此处不需要加反斜杠(推荐)

var x2 ='my name \"is\" xxx'   // 添加反斜杠效果也一样(不推荐)

测试效果,如下图所示:

489JavaScript字符串

JavaScript == 与 === 区别

1、对于 string、number 等基础类型,== 和 === 是有区别的

  • a)不同类型间比较,== 之比较 "转化成同一类型后的值" 看 "值" 是否相等,=== 如果类型不同,其结果就是不等。
  • b)同类型比较,直接进行 "值" 比较,两者结果一样。

2、对于 Array,Object 等高级类型,== 和 === 是没有区别的

进行 "指针地址" 比较

3、基础类型与高级类型,== 和 === 是有区别的

  • a)对于 ==,将高级转化为基础类型,进行 "值" 比较
  • b)因为类型不同,=== 结果为 false

4、!= 为 == 的非运算,!== 为 === 的非运算

var num=1;

var str="1";

var test=1;

test == num   //true 相同类型 相同值 

test === num  //true 相同类型 相同值 

test !== num  //false test与num类型相同,其值也相同, 非运算肯定是false 

num == str   //true  把str转换为数字,检查其是否相等。 

num != str   //false  == 的 非运算 

num === str  //false  类型不同,直接返回false 

num !== str  //true   num 与 str类型不同 意味着其两者不等 非运算自然是true啦

488JavaScript事件

注意,当在 JS 文件中为相关元素设置事件时,其写法与 HTML 事件属性写法相同,例如:

<button id="test" onclick="changeContent()">更换内容</button>

在 JS 中则需要这样写:

var test = document.getElementById("test");test.onclick = changeContent(){//......}

注意:在为元素添加事件句柄或者删除元素事件句柄的过程中,注意不要将event参数设置为onclick,而必须写成click,去掉事件名称中的on即可。

注:

添加事件句柄函数原型:

element.addEventListener(event, function, [useCapture])

删除事件句柄的函数原型:

element.removeEventListener(event, function, [useCapture])

487JavaScript作用域

ES6 中的 let 关键字

let 允许你声明一个作用域被限制在块级中的变量、语句或者表达式。与var关键字不同的是,它声明的变量只能是全局或者整个函数块的。

let 语法:

let var1 [= value1] [, var2 [= value2]] [, ..., varN [= valueN]];

let 声明的变量只在其声明的块或子块中可用,这一点,与 var 相似。二者之间最主要的区别在于 var 声明的变量的作用域是整个封闭函数。

let 和 var 的区别代码实例:

function varTest() {
  var x = 1;
  if (true) {
    var x = 2;  // 同样的变量!
    console.log(x);  // 2
  }
  console.log(x);  // 2
}

function letTest() {
  let x = 1;
  if (true) {
    let x = 2;  // 不同的变量
    console.log(x);  // 2
  }
  console.log(x);  // 1
}

486JavaScript作用域

在 ES6 中,提供了 let 关键字和 const 关键字。

let 的声明方式与 var 相同,用 let 来代替 var 来声明变量,就可以把变量限制在当前代码块中。

使用 const 声明的是常量,其值一旦被设定便不可被更改。