JavaScript基础学习 | 青训营笔记

58 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的的第3天

JavaScript基础学习

向页面添加js可以使用script元素,如

<script src="script.js" async></script>

JavaScript的基本表达式

java中的严格等于是用三个等号来判断的,比如" a===3 ".这个表达式和相等(==)不同,(===)的非运算为(!==),(==)的非运算为(!=)


JavaScript中有switch case的结构,根据变量不同的值执行不同的语句,如果都不符合则执行最后的default,每个case中间需要有个break,否则不会跳出switch结构。 用法例如:

switch (x) {
  case 1:
    console.log('x 等于1');
    break;
  case 2:
    console.log('x 等于2');
    break;
  default:
    console.log('x 等于其他值');
}

switch语句在运行时采用的是“===”等式而不是“==”,因此不会发生类型转换。


do-while语句会先运行一次do的内容,然后再判断是否符合while的条件,因此不管怎么样都会先运行一次。

var x = 3;
var i = 0;

do {
  console.log(i);
  i++;
} while(i < x);

JavaScript允许有一个label,相当于定位符,用于跳转到被定位的位置。

foo: {
  console.log(1);
  break foo;
  console.log('本行不会输出');
}
console.log(2);

JavaScript的基本数据类型

空数组[]和空对象{}的布尔值都是true,空字符串“ ”, ’ ‘为false。

parseInt()方法用于将字符串转换为整数。第二个参数可以将数字转换为选定的进制,比如

parseInt('1000', 8) // 512

同理parseFloat()可以将一个字符串转换为浮点数。 isNaN()用来判断一个值是否为NaN javaScript允许在程序中直接使用unicode来表示,比如:

var s = '\u00A9';
var f\u006F\u006F = 'abc';

在JavaScript中,对象是一组键值对的集合,比如:

var obj = {
  foo: 'Hello',
  bar: 'World'
};

键值可以是任何类型,如果是函数,则称其为方法,可以被调用。 读取对象的属性,既可以用方括号,也可以用点运算符,使用方括号的时候键名必须放在引号里面,否则会被视为变量。

属性的查看可以用Object.keys()方法。 属性的删除可以用 delete命令。 如下:

var obj = { p: 1 };
Object.keys(obj) // ["p"]

delete obj.p // true
obj.p // undefined
Object.keys(obj) // []

with语句可以使操作一个对象的多个属性时更加方便。

with (document.links[0]){
  console.log(href);
  console.log(title);
  console.log(style);
}
// 等同于
console.log(document.links[0].href);
console.log(document.links[0].title);
console.log(document.links[0].style);

在JS中,用function命令声明函数.

闭包: 在函数内部再定义一个函数,使得其可以读取到外部函数的变量.

eval:可以接受一个字符串当作一个语句执行,eval内部声明的变量不会影响到外部作用域.

数组:任何类型的数据都可以放入数组,包括函数.数组是个动态的结构,length代表最大的那个整数键+1,数组的空位不影响length属性.如果是空位,用forEach,for in等方法遍历时都会跳过.而undefined则不会.

void可以提供一个表达式然后不返回值

<a href="javascript: void(document.form.submit())">
  提交
</a>

在JS中,用throw语句主动抛出一个错误. 用try catch finally来对错误进行处理,类似于python的try except finally


JS的数组可以用shift()来取出第一个元素,用unshift()在第一个位置添加元素,用concat()来连接两个数组或者元素。reverse()用来颠倒,slice()用来提取一部分数组。 splice()用来删除原数组的一部分,并且还可以添加。 JS的sort不是按照大小排序,而是按照字典顺序,因此101在11之前,因此需要传入一个函数作为参数来指定排序。

[10111, 1101, 111].sort(function (a, b) {
  return a - b;
})
// [111, 1101, 10111]

filter()可以过滤数组成员,作为一个新数组返回。 indexOf()lastIndexOf()用来查找元素位置