JavaScript概述

1 ECMAScript和JavaScript的关系

    1996年11月,JavaScript的创造者--Netscape公司,决定将JavaScript提交给国际标准化组织ECMA,希望这门语言能够成为国际标准。次年,ECMA发布262号标准文件(ECMA-262)的第一版,规定了浏览器脚本语言的标准,并将这种语言称为ECMAScript,这个版本就是1.0版。

    该标准一开始就是针对JavaScript语言制定的,但是没有称其为JavaScript,有两个方面的原因。一是商标,JavaScript本身已被Netscape注册为商标。二是想体现这门语言的制定者是ECMA,而不是Netscape,这样有利于保证这门语言的开发性和中立性。

    因此ECMAScript和JavaScript的关系是,前者是后者的规格,后者是前者的一种实现。

 

尽管 ECMAScript 是一个重要的标准,但它并不是 JavaScript 唯一的部分,当然,也不是唯一被标准化的部分。实际上,一个完整的 JavaScript 实现是由以下 3 个不同部分组成的:

  • 核心(ECMAScript) 
  • 文档对象模型(DOM) Document object model (整合js,css,html)
  • 浏览器对象模型(BOM) Broswer object model(整合js和浏览器)

    简单地说,ECMAScript 描述了JavaScript语言本身的相关内容。

    JavaScript 是脚本语言
    JavaScript 是一种轻量级的编程语言。后来出现了node.js,可以作为后端语言来开发项目,js是一个既能做前端又能做后端的语言,但是js这个作者用了10天就开发了这么个语言,所以写的不是很完善,这个语言有很多的槽点,后面学习起来大家就知道啦。

    JavaScript 是可插入 HTML 页面的编程代码。

    JavaScript 插入 HTML 页面后,可由所有的现代浏览器执行。

2 JavaScript数据类型

JavaScript拥有动态类型(python也是动态的)

var x;  // 此时x是undefined  静态语言比如c:创建变量的时候,要指定变量的类型,python3.6也出现了类型注解的新特性def func(x:int,y:int) --> int: return x + y,意思是参数是int类型,返回值也是int类型的,就是个注释的作用
var x = 1;  // 此时x是数字
var x = "Alex"  // 此时x是字符串 

 2.1 数值(Number)

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

  还有一种NaN,表示不是一个数字(Not a Number),也就是说是一个值,但不是数字。

类型转换:

parseInt("123")  // 返回123
parseInt("ABC")  // 返回NaN,NaN属性是代表非数字值的特殊值。该属性用于指示某个值不是数字。
parseFloat("123.456")  // 返回123.456

  2.2字符串(String)

var a = "Hello"
var b = "world;
var c = a + b; 
console.log(c);  // 得到Helloworld

常用方法(字符串):

方法                                                                         说明
.length    #不加括号的是属性                                                  返回长度
.trim()    #得到一个新值                                                     移除空白
.trimLeft()                                                              移除左边的空白
.trimRight()                                                             移除右边的空白
.charAt(n)  #n类似索引,从0开始,超过最大值返回''空字符串                            返回第n个字符
.concat(value, ...) #s1='hello';s.concat('xx');得到helloxx                        拼接
.indexOf(substring, start) #这个start是从索引几开始找,没有返回-1                     子序列位置
.substring(from, to) #不支持负数,所以一般都不用它,了解一下就行了                      根据索引获取子序列
.slice(start, end) #var s1='helloworld';s1.slice(0,-5)看结果,就用它                    切片
.toLowerCase() #全部变小写                                             小写
.toUpperCase()  #全部变大写                                             大写
.split(delimiter, limit)#分隔,s1.splite(' '),后面还可以加参数s1.split(' ',2),返回切割后的元素个数     分割

拼接字符串一般使用“+”

    slice和substring的区别:

string.slice(start, stop)和string.substring(start, stop):

两者的相同点:
如果start等于end,返回空字符串
如果stop参数省略,则取到字符串末
如果某个参数超过string的长度,这个参数会被替换为string的长度

substirng()的特点:
如果 start > stop ,start和stop将被交换
如果参数是负数或者不是数字,将会被0替换

silce()的特点:
如果 start > stop 不会交换两者
如果start小于0,则切割从字符串末尾往前数的第abs(start)个的字符开始(包括该位置的字符)
如果stop小于0,则切割在从字符串末尾往前数的第abs(stop)个字符结束(不包含该位置字符)
View Code

相关文章: