2018-07-19 19:29:01  475538 1

javascript入门基础知识点(一)

 标签:   

 javascript介绍

      JavaScript一种直译式脚本语言,是一种动态类型、弱类型、跨平台,基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。


不同于PHP java  javascript运行在浏览器。


     在1995年时,由Netscape(网景)公司的Brendan Eich,在网景导航者浏览器上首次设计实现而成。因为Netscape与Sun合作,Netscape管理层希望它外观看起来像Java,因此取名为JavaScript。但实际上它的语法风格与Self及Scheme较为接近。  


1995年5月,Brendan Eich 布兰登·艾奇只用了10天,就设计完成了这种语言的第一版。它是一个大杂烩,语法有多个来源。

    基本语法:借鉴 C 语言和 Java 语言。

    数据结构:借鉴 Java 语言,包括将值分成原始值和对象两大类。

    函数的用法:借鉴 Scheme 语言和 Awk 语言,将函数当作第一等公民,并引入闭包。

    原型继承模型:借鉴 Self 语言(Smalltalk 的一种变种)。

    正则表达式:借鉴 Perl 语言。

    字符串和数组处理:借鉴 Python 语言。

2014年4月3日,出任Mozilla的CEO十天  就被迫辞职  

QQ截图20180719193105.jpg

ECMAScript


ECMAScript,简称ES,是由Ecma国际(前身为欧洲计算机制造商协会,英文名称是European Computer Manufacturers Association)按照ECMA-262和ISO/IEC 16262标准制定的一种脚本语言规范。

JavaScript是按ECMAScript规范实现的一种脚本语言,其他的还有JScript、ActionScript。


截止到2017年年底,ECMAScript共发布了8个版本:


ECMAScript 1  1997年06月:发布首版。

ECMAScript 2   1997年06月:修改规范完全符合ISO/IEC 16262国际标准

ECMAScript 3   1999年12月:增加正则、更好的文字处理、新的控制语句、try/catch异常处理、更加明确的错误定义,数字输出格式等等。

ECMAScript 4    放弃发布。

ECMAScript 5    2009年12月:完善了ECMAScript 3版本、增加"strict mode,"(严格模式)、以及新的功能,如getter和setter、JSON库支持和更完整的对象属性。

ECMAScript 6  2015年06月:第六版的名字有很多,可以叫ECMAScript 6(ES6),也可以叫ECMAScript 2015(ES2015)。

此版本增加了非常重要的东西:let、const、class、modules、 arrow functions,、template string, destructuring, default, rest argument、binary data、promises等等。

ECMAScript 7 2016年06月:也被称为ECMAScript 2016。完善ES6规范,还包括两个新的功能:求幂运算符(*)和array.prototype.includes方法。

ECMAScript 8 2017年06月:增加新的功能,如并发、原子操作、Object.values/Object.entries、字符串填充


排名

QQ截图20180719193505.jpg

语法规范

引入方式

<script  type=”text/javascript”>具体js代码</script>

<script  type=”text/javascript” src=”js文件”></script>(放到页面最后面)

注释方式

//  单行注释

/*多行注释*/

结束符号

   结束以分号结束,可以加也可以不加 (推荐加)

输出函数

alert();  //弹出框

console.log();  //控制台输出

document.write(“星期一”);//页面输出

变量

var  变量名  //只声明 不赋值

var 变量名 = 变量值  //声明+赋值

var  变量名1,变量名2,变量名3, //同时声明多个变量

var  可以不写  但是不规范  推荐写


变量名区分大小写,允许包含字母、数字、美元符号($)和下划线但第一个字符不允许是数字,不允许包含空格和其他标点符号

JavaScript有一些保留字,不能用作标识符:arguments、break、case、catch、class、const、continue、debugger、default、delete、do、else、enum、eval、export、extends、false、finally、for、function、if、implements、import、in、instanceof、interface、let、new、null、package、private、protected、public、return、static、super、switch、this、throw、true、try、typeof、var、void、while、with、yield。

变量提升

        JavaScript 引擎的工作方式是,先解析代码,获取所有被声明的变量,然后再一行一行地运行。这造成的结果,就是所有的变量的声明语句,都会被提升到代码的头部,这就叫做变量提升(hoisting)。

数据类型

JavaScript 语言的每一个值,都属于某一种数据类型。JavaScript 的数据类型,共有六种。(ES6 又新增了第七种 Symbol 类型的值)

数值(number):整数和小数(比如1和3.14)

字符串(string):文本(比如Hello World)。

布尔值(boolean):表示真伪的两个特殊值,即true(真)和false(假)

undefined:表示“未定义”或不存在,即由于目前没有定义,所以此处暂时没有任何值

null:表示空值,即此处的值为空。

对象(object):各种值组成的集合。

     通常,数值、字符串、布尔值这三种类型,合称为原始类型(primitive type)的值,即它们是最基本的数据类型,不能再细分了。对象则称为合成类型(complex type)的值,因为一个对象往往是多个原始类型的值的合成,可以看作是一个存放各种值的容器。至于undefined和null,一般将它们看成两个特殊值。

typeof 运算符

JavaScript 有三种方法,可以确定一个值到底是什么类型。


  typeof运算符  //  运算符可以返回一个值的数据类型

  instanceof运算符

  Object.prototype.toString方法

数值(整数浮点数)

var a =123  //number

var a = 1.23  //number


    JavaScript 内部,所有数字都是以64位浮点数形式储存,即使整数也是如此。所以,1与1.0是相同的,是同一个数。  

JavaScript 语言的底层根本没有整数,所有数字都是小数(64位浮点数)

由于浮点数不是精确的值,所以涉及小数的比较和运算要特别小心。  

字符串(string)

var a =‘hello world’ //string  放在单引号或者双引号
单引号字符串的内部,使用单引号,就必须在内部的单引号前面加上反斜杠,用来转义
字符串默认只能写在一行内,分成多行将会报错。 多行的话 末尾加 \
数据类型 undefined  和 null
var a=  undefined ;             // undefined 
var a = null      //  null    object

 null与undefined都可以表示“没有”,含义非常相似。

       null的类型是object,这是由于历史原因造成的。1995年的 JavaScript 语言第一版,只设计了五种数据类型(对象、整数、浮点数、字符串和布尔值),没考虑null,只把它当作object的一种特殊值。后来null独立出来,作为一种单独的数据类型,为了兼容以前的代码,typeof null返回object就没法改变了。

对象

对象(object)是 JavaScript 语言的核心概念,也是最重要的数据类型。

对象就是一组“键值对”(key-value)的集合,是一种无序的复合数据集合。与

PHP不同

var  obj = {键名1:键值1,键名2:键值2};

对象的所有键名都是字符串  加不加引号都可以  推荐加引号

对象的每一个键名又称为“属性”(property),它的“键值”可以是任何数据类型

对象的属性之间用逗号分隔,最后一个属性后面可以加逗号(trailing comma),也可以不加。

对象的访问/调用


第一种

对象名.键名/属性名

第二种

对象名[键名/属性名]

属性的赋值

对象名.键名/属性名 = 属性值

数据类型转换

JavaScript 是一种动态类型语言,变量没有类型限制,可以随时赋予任意值。

自动转换

var a = ‘5’-’4’;  //转成 number
var a  = 123 + 'abc' // string

JavaScript 遇到预期为布尔值的地方(比如if语句的条件部分),就会将非布尔值的参数自动转换为布尔值。系统内部会自动调用Boolean函数。

因此除了以下五个值,其他都是自动转为true。

    undefined

    null

    +0或-0

    NaN

    ''(空字符串)

数据类型转换

强制转换

 Number、String和Boolean  3个函数

Number  以将任意类型的值转化成数值。  //parseInt函数差不多

字符串:如果可以被解析为数值,则转换为相应的数值 如果不可以被解析为数值,返回 NaN


空字符串转为 0  

布尔值:true 转成 1,

false 转成 0  

undefined:转成 NaN  

null:转成0

NaN是 JavaScript 的特殊值,表示“非数字”(Not a Number),主要出现在将字符串解析成数字出错的场合。

String函数可以将任意类型的值转化成字符串,转换规则如下。


数值:转为相应的字符串。

字符串:转换后还是原来的值。

布尔值:true转为字符串"true",false转为字符串"false"。

undefined:转为字符串"undefined"。

null:转为字符串"null"。



1 条留言此文章没有人评论

给我留言

评论内容