JavaScript基础一

Posted Python小白白白白白白

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript基础一相关的知识,希望对你有一定的参考价值。

一、ECMA Script和JavaScript

ECMA Script是一个标准,javascript是一种实现规则的版本。

 

二、JavaScript的导入方式

① 直接将js代码写到页面上的script标签中

② 把代码写到单独的JS文件中,然后通过script标签的src属性导入

<!--JS的导入-->
<script src="jsdome.js"></script>
<body>
<script>
    alert(\'haha\')
</script>
</body>
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script>
        alert(\'haha\')
    </script>
</head>

 

三、JavaScript的语言规范

JavaScript的语句要以分号为结束符;

注释:
// 单行注释
/*多行注释
多行注释
多行注释*/

 

四、JavaScript变量的声明

① JavaScript的变量名可以使用下划线_,数字,字母,$,组成,不能以数字开头

② 声明变量使用var 变量名 来声明

注意:

1.变量名是区分大小写

2.推荐使用驼峰式命名规则

3.保留字不能用做变量名

 

补充:

ES6新增了let命令,用于声明变量。其用法类似于var,但是所声明的变量只在let命令所在的代码块内有效。例如:for循环的计数器就很适合使用let命令。

ES6新增const用来声明常量。一旦声明,其值就不能改变。

 

 

五、JavaScript的数据类型

①.数值Number

不区分整型和浮点型,只有一种数字类型

NaN是数字类型,表示不是一个数字

// 字符串转换为整型
parseInt(\'123\')     
123

// 字符串转换为浮点型
parseFloat(\'123.789\');
123.789

// 字符串转换为整型,无法转换返回NaN,NaN是数字类型
parseInt(\'abc\');
NaN

 

②.字符串String

// 字符串拼接+
var s1 = \'Good \';
var s2 = \'morning\';
s1+s2
"Good morning"
// 字符串常用方法
var s2 = \'   Hello   \'      //定义字符串
s2.length;                  //字符串获取长度
11
s2.trim();                  //移除字符串两端空格,形成新的字符串
"Hello"
s2.trimLeft();              //移除字符串左端空格,形成新的字符串
"Hello   "
s2.trimRight();             //移除字符串右端空格,形成新的字符串
"   Hello"

//定义字符串
var s1 = \'When you think you’re not happy with \' +
    \'your life, always remember that someone is happy simply \' +
    \'because you exist.\';
s1.charAt(10)               //获取第10个字符
"h"

var s2 = \'hello\';
s2.concat(\' boy\');          //字符串拼接,形成新的字符串
"hello boy"

var s1 = \'Good morning\'
s1.indexOf(\'o\',5);          //获取字符在字符串的索引
6

s1.substring(-5,4);         //字符串切片,不支持负数,负数会变0
"Good"
s1.substring(0,-5);         //字符串切片,不支持负数,负数会变0,获取不到返回空字符串
""

s1.slice(0,-3);             //字符串切片,支持负数
"Good morn"

s1.toLowerCase();           //字符串所有字符变为小写,形成新的字符串
"good morning"
s1.toUpperCase();           //字符串所有字符变为大写,形成新的字符串
"GOOD MORNING"

s1.split(\' \',1);            //字符串以空格分割,可加参数(返回结果的个数),返回的是数组
["Good"]

s1.split(\' \',3);            //字符串以空格分割,可加参数(返回结果的个数),返回的是数组
["Good", "morning"]

 

补充:

ES6中引入了模板字符串。模板字符串(template string)是增强版的字符串,用反引号(`)标识。它可以当做普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量。

// 普通字符串
`这是普通字符串!`
// 多行文本
`这是多行的
文本`
// 字符串中嵌入变量
var name = "xiaoming", time = "today";
`Hello ${name}, how are you ${time}?`

 

③.布尔值Boolean

True和False

""(空字符串)、0、null、undefined、NaN都是false

 

④.null

null表示值是空,可以手动指定

 

⑤.undefined

undefined表示当声明一个变量但未初始化时,变量的默认值是undefined

函数没有明确指定返回值,默认返回的就是undefined

 

⑥.对象Object

JavaScript 中的所有事物都是对象:字符串、数值、数组、函数...此外,JavaScript 允许自定义对象。

JavaScript 提供多个内建对象,比如 String、Date、Array 等等。

对象只是带有属性和方法的特殊数据类型。

 

数组(Array)

数组对象的作用是:使用单独的变量名来存储一系列的值。类似于Python中的列表。

//数组常用方法:
var li = [\'a\',\'b\',\'c\',\'d\',\'e\',\'f\']      // 定义数组
li.length;                              // 获取数组的长度
6
li.push(\'k\');                           // 数组末尾追加元素
7
li                                      // 数组
(7) ["a", "b", "c", "d", "e", "f", "k"]0: "a"1: "b"2: "c"3: "d"4: "e"5: "f"6: "k"length: 7__proto__: Array(0)
li.pop();                               // 删除数组末尾的元素并返回
"k"
li
(6) ["a", "b", "c", "d", "e", "f"]
li.unshift(\'z\');                        // 数组头部插入元素
7
li.shift();                             // 删除数组头部的元素并返回
"z"
li                                      // 数组
(6) ["a", "b", "c", "d", "e", "f"]

li.slice(2,5);                          // 数组的切片
(3) ["c", "d", "e"]
li.reverse();                           // 翻转数组,在数组的基础上改变
(6) ["f", "e", "d", "c", "b", "a"]

li.join(\'+\');                           // 将数组的元素拼接成字符串,数组的元素必须字符串类型
"f+e+d+c+b+a"

li.sort();                              // 数组的排序,在数组的基础上改变
(6) ["a", "b", "c", "d", "e", "f"]

li.concat(\'z\',\'x\',\'c\');                 // 数组的连接,类似列表的expend,形成新的数组,不改变原来数组
(9) ["a", "b", "c", "d", "e", "f", "z", "x", "c"]

li.splice(1,3,\'z\',\'x\',\'c\',\'v\',\'n\');     //删除元素,并向数组添加元素,参数(下标,删除的个数,插入的值),在原数组上
(3) ["b", "c", "d"]
li
(8) ["a", "z", "x", "c", "v", "n", "e", "f"]

关于sort()需要注意:

如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。

如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:

若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
若 a 等于 b,则返回 0。
若 a 大于 b,则返回一个大于 0 的值。

function sortNumber(a,b){
    return a - b
}
var arr1 = [11, 100, 22, 55, 33, 44]
arr1.sort(sortNumber)

 

自定义对象(类似于python中的字典)

var dic = {name:\'xiaoming\',age:20};

dic
{name: "xiaoming", age: 20}

 

 

 

六、类型查询

// 字符串的判断
typeof \'abc\'
"string"
typeof 123.456;
"number"
typeof null;            // object类型
"object"
typeof undefined;       // undefined类型
"undefined"
typeof NaN              // number类型
"number"

 

七、运算符

① 算术运算符

+、-、*、/、%、++、--

 

② 比较运算符

>  、 <  、 <=  、  >=   、  !=   、  ==    、=== 、 !==

!= :判断两边的值是否不相等

!==:判断两边的值和类型是否不相等

1 != \'1\';                  //false
1 !== \'1\';                 //true

 

==:弱等于,判断两边的值是否相等

===:强等于,判断两边的值和类型是否相等

1 == \'1\';               //true
1 === \'1\';              //false

 

③ 逻辑运算符

&&  与

||      或

!       非

 

④ 赋值运算符

= 、 +=  、 -=  、*=  、 /=

 

以上是关于JavaScript基础一的主要内容,如果未能解决你的问题,请参考以下文章

php生成各种验证码

JavaScript 有用的代码片段和 trick

《前端之路》之 Babel 下一代 JavaScript 语法编译器

ES6 介绍 及 变量基础知识

JavaScript的ES6语法13下一代ES的展望

[WebKit内核] JavaScript引擎深度解析--基础篇字节码生成及语法树的构建详情分析