这是我参与「第四届青训营 」笔记创作活动的的第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()用来查找元素位置