js基础-1

158 阅读6分钟

js历史

  • 布兰登·艾奇(Brendan Eich,1961年~),1995年在网景公司,发明的JavaScript。

    JavaScript诞生于1995年。它当时的目的是为了验证表单输入的验证。一开始JavaScript叫做LiveS cript,但是由于当时Java这个语言特别火,所以搭上Java的顺风车,就改名为JavaScript。

    同时期还有其他的网页语言,比如VBScript、JScript等等,但是后来都被JavaScript打败,所以现在的浏览器中,只运行一种脚本语言就是JavaScript。

    经过许多年的发展,JavaScript从一个简单的输入验证成为一门强大的编程语言。

    2003年之前,JavaScript被认为“牛皮鲜”,用来制作页面上的广告,弹窗、漂浮的广告。什么东西让人烦,什么东西就是JavaScript开发的。所以浏览器就推出了屏蔽广告功能。

    2007年乔布斯发布了iPhone,这一年开始,用户就多了上网的途径,就是用移动设备上网。JavaScript在移动页面中,也是不可或缺的。并且这一年,互联网开始标准化,按照W3C规则三层分离,人们越来越重视JavaScript了。

    今天,JavaScript工程师是能够和iOS、Android工程师比肩,毫不逊色的。

    JavaScript是一种具有面向对象能力的、解释型的程序设计语言。更具体一点,它是基于对象和事件驱动并具有相对安全性的客户端脚本语言。

js引入及书写

1. 内部书写
- 位于head部分:
对于html来说,从上而下同步进行解释性文档,当你把脚本放置到 head部分后,必须等到全部的javascript代码都被下载、解析和执行完成后,才能开始呈现页面的内容(浏览器在遇到body标签才开始呈现内容)。上面的代码无法调用下面的标签或者html
- 位于body位置:
为了避免上述问题,现代web应用程序一般把javascript引用放在body中,放在页面内容后面。这样,在解析包含的javascript代码之前,页面内容将完整呈现。
由于浏览器有自动修正功能,一部分工程师会把script放在html标签后面,但不推荐这么做
如果加载的js中,变量或者函数相同时,会发生覆盖,这种现象称为变量污染
2. 外部引入
可以用script的src属性引用外部js文件
3. 直接写在标签内

关于注释

- 单行注释
Ctrl + / 注释一行代码,注释内容不可换行
- 多行注释/块状注释
块状注释可以注释一行内的部分内容
块状注释可以注释一个函数和大量代码块
可以对代码进行部分解释说明
shift + alt +a 进行选择注释

一些常用的方法

1. 弹出框alert("弹出的内容")
- 一般不直接使用
关于vscode内的解释
    alert(message?:any):void
    tip:
    message是参数名称
    ? 表示可以不写值
	:any 表示这个参数的类型可以是任意的
    :void 表示不返回任何值

2.  console.log()在控制台中显示
3. confirm()    弹出确定取消框
4. prompt()     弹出输入框

变量

1.ES5 之前,不需要定义,是一种弱类型
2.ES5 以后
    - 不允许直接使用变量的赋值,需要声明
    - 命名规则
        - 必须使用驼峰式命名规则
        - 临时变量必须使用_起头,后面使用驼峰式命名
        - 变量不可以使用关键字和保留字命名
        - 全局变量名不能与widow下的属性和方法同名
    - 常量声明:const
    - 变量声明:var  let

数据类型

1. 字符型(string)
    - 所有使用''  ""  `` ,都是字符型
2. 数值型(Number)
3. 布尔型(Boolean)
    - true
    - false
4. 未定义型(Undefined)
    - var a;	//定义变量未赋值,用于全局定义,然后根据需要在赋值,初始没有值
    var b=undefined 直接给赋值为undefined,用于初始值是undefined或者将原有变量修改为undefined
    - 两者值相同但是形态不同
5. 空值(Null)
6. 对象型  object
	- 关键对:key:value //关键词和值
	- 获取对象中key的值
		- 点语法,仅限于key属性固定,并且明确
		- [ ]语法
			- 如果固定的key,就使用字符串方式来设定
			- 如果不固定,直接[变量]就可以

数据类型转换

数值转换
	数值转字符串
		String()
		    - var b=String(a);//类型强制转换
		    a=String(a);将a转换为字符串覆盖原有变量a
            a=a+"";//利用隐式转换方式,没有强制转换,根据运算特征自动转换为字符串,隐式转换
            隐式转换所使用的的转换方法是自动执行String(a);
		toString(进制2-36)
		toFixed(小数点位数)
			转换为字符串,保留小数点位数,四舍五入
	数值转布尔
		Boolean()
	数值转对象
		Object()
字符串转换
	字符串转数值
		Number()
		- 强制转换为数值类型
		- 非完全数值,返回值为NaN
		- 隐式转换会把字符前后两端的空格忽略掉
		parseInt(参数1,参数2)
            - 转换为整数
            - 隐式类型转换
            - 遇到非数字,停止转换
            - 如果第一个就为非数字,则返回NaN
            - 第二个参数为要转换的进制
		parseFloat()
	字符串转布尔
		仅空字符串"" 转换时为false,其余都为true
            - 空字符是" ",转换布尔为true
            - 空字符串是""
	转换为对象
		Object()
		清除字符串前后空格  .trim()
布尔转换
	转数值
	转字符串
	转对象
	任何类型转布尔
		空字符串"", 0 , null, NaN ,false , undefined 转换为布尔都是false  其他类型转换为布尔都为true
null,undefined转换
	转为字符串和数值

算数运算符

+
	如果前后出现字符串,必须使用字符串首尾链接的方式将内容链接
	如果没有出现字符串,其他类型都会转换为数值,进行算数运算
-  /  *  %
	所有类型都要转换为数值进行算数运算

一元运算符和赋值运算

++ 累加
	a++和++a,对应a来说,运算结果都相同
	如果将a++和++a作为返回值参与运算或者赋值时
		a++ 是将a先参与运算或者赋值
		++a是+1以后的结果参与运算或者赋值
--  累减

关系运算符

> <
>= <=
==   ===
- == 判断值 是否相等
- ===判断值和类型 是否相等
- 以后所有的代码都要用===
!
!=   !==

逻辑运算

&&
- 与(且)的两边只要出现一个false即为false
- 只有两边都是true,才为true 
- 规律:
- 如果左侧是false,那么结果就是左侧的内容
- 如果左侧是true,不能确定结果,需要继续向右检测,不管右侧是啥,结果都停在右侧
||
- 或的两边只要出现一个true即为true
- 只有两边都是false,才是false
- 规律:
- 如果左侧是true,那么结果就是左侧的内容
- 如果左侧是false,不能确定结果,需要继续向右检测,不管右侧是啥,结果都停在右侧
!