JavaScript学习(一)
JavaScript学习(一)
学习了javascript的基础的一部,简单的总结一下,包括:
- Javascript的历史
- Javascript的入门
- 数据类型
- 流程控制
一、JavaScript历史
JavaScript是一种弱脚本语言,做为开发web页面的脚本语言而出名,也被用到了很多非浏览器环境中
vaScript在1995年由Netscape公司的Brendan Eich,在网景导航者浏览器上首次设计实现而成。因为Netscape与Sun合作,Netscape管理层希望它外观看起来像Java,因此取名为JavaScript。但实际上它的语法风格与Self及Scheme较为接近。
javaScript的标准是ECMAScript 。
2015年6月17日,ECMA国际组织发布了ECMAScript 的第六版,该版本正式名称为 ECMAScript 2015,但通常被称为ECMAScript 6 或者ES6。
开发人员一般编写代码使用的是ES6的环境,但是很多浏览器的只支持ECMAScript 5.1。
JavaScript可以说是最流行的脚本语言之一。所以后台开发人员必须精通JavaScript。
二、Javascript的入门
2.1简单的Javascript代码与两种引入方式
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
<!--script标签内次哦JavaScript代码--><!--养成习惯,分号结尾--><script>alert('helloworld');</script>
</head>
<body></body>
</html>
JavaScript代码有两种引入方式
第一种为上面代码所用的行内式
第二种为行外式
即在外部js文件中写好js代码,然后引入。一般使用第二种方式。
2.2 简单的定义变量与流程控制
<script>var num=1;if (num<2){alert(num);}</script>
2.3 单行注释和多行注释
<script>//单行注释/** 多行注释* 多行注释*/var num=1;if (num<2){alert(num);}</script>
2.4 输入输出语句
<script>//在浏览器弹出弹窗alert('100');//在控制台打印console.log('200');//在浏览器弹出输入框,用户可输入信息prompt("请输入密码")</script>
2.5 严格检查模式
因为JavaScript太过随意,且很难报错。所以一般使用严格检查模式。避免一些问题。
<script>//必须写在script标签里的第一行'use strict'</script>
使用严格检查模式必须先将IDEA调整到ES6
三、数据类型
3.1 定义变量的格式
变量类型 变量名 = 变量值 ;
<script> 'use strict'//定义局部变量let num=3;//定义全局变量,不建议使用var word=6;</script>
3.2 运算符
逻辑运算符:
&&-------二者为真则为真
|| -------有一为真即为真
! --------真即假,假即真
比较运算符
JavaScript不同于Java的是
==代表等于(类型不一样,值一样。仍旧等于)
===代表绝对等于(类型一样,值一样,才等于)
3.3 布尔类型
false
true
3.4 数字
JavaScript不区分浮点数和整数。统一都是number
999
999.9999
99e9
-99
NaN//not a number
infinity//无限大
特殊的:NaN不等于任何一个数。包括它自身。
只能通过 isNaN 这个方法来判断是否为NaN
注意:尽量避免使用浮点数进行计算。因为会有精度损失
3.5字符串
JavaScript中,字符串使用单引号和双引号包裹均可。
‘‘abc’’ ‘hello’
多行字符串
用esc键下的`符号。可以定义多行字符串。
转义字符串
'\n'--换行符 '\t'--制表符 '\''--转义字符
模板字符串
//模板字符串 let test='haha'; let testx=`${test},nihao`; alert(testx)
字符串长度
alert(testx.length);
字符串的不可变性
字符串的大小写转换
test.toUpperCase(); test.toLowerCase();
字符串的指定字符位置
test.indexOf('t');
截取字符串
test.substring(1)//从第一个字符串截取到最后一个字符串 test.substring(1,3)//从第一个截到第三个.含头不含尾
3.6 数组
- Array可以包含任意的数据类型,一个数组里面可以有多种数据类型
//数组
let arr=[1,'haha',1.3,2E3,'\n'];
alert(arr[1]);
- 超出数组长度,会报未定义。
let arr=[1,'haha',1.3,2E3,'\n'];alert(arr[10]);
- 数组长度
arr.length
注意:JavaScript中,数组长度可以动态变化。给arr.length赋值。数组长度就会变化。
如果赋值过小,元素就会丢失。如果赋值过大。元素空位会补上undefined
indexOf,通过元素获得下标索引
slice,截取字符串。获得一个新的字符串。含头不含尾
let arr=[1,'haha',1.3,2E3,'\n'];let arr2=arr.slice(0,2);alert(arr2);
push(),pop() 尾部
//push 压入到尾部 let arr=[1,'haha',1.3,2E3,'\n'];arr.push(3,5,6)alert(arr); //pop 从尾部弹出let arr=[1,'haha',1.3,2E3,'\n'];arr.push(3,5,6)arr.pop();
unshift(),shift()头部
arr.shift()//从头部弹出一个元素 arr.unshift()//压入到头部
sort()排序
- reverse()元素反转
caocat()拼接
concat并没有修改原来的数组,只是返回了一个新的数组
- join连接符
3. 7 对象
JavaScript中对象是以键值对的形式表现的
//对象的定义形式var student={name:"liuyang",age:10,sex:"男" //属性之间以逗号隔开,最后一个属性不加逗号}
对象赋值
student.name="dadada";
使用不存在的对象属性
var student={name:"liuyang",age:10,sex:"男" } alert(student.email) //只会报未定义,不会报错
动态的删减增添属性
//动态的增添属性 var student={name:"liuyang",age:10,sex:"男" } student.email="9613@qq.com"; alert(student.email);//删减属性 delete student.email;
判断这个属性是否在这个对象中
'age' in student true //继承的属性也在对象中 'toString' in student true
判断这个方式是否属于这个对象
student.hasOwnProperty('toString') false student.hasOwnProperty('age') true
JavaScript中所有键都是字符串,需要加上’’ ''包裹。所有的值都是任意类型
3.8 Map和Set
map
var map=new Map([['黑',100],['白',200],['红',300]]);//创建mapvar number = map.get('黑'); //通过key查value值.map.set('粉',400); //添加键值对map.delete('黑') //删除键值对
set
var set =new Set([1,2,2,2,3,4,5]); //创建setset.delete(2) //删除值set.add(6) //添加值set.has(6) //判断是否含有某个元素
遍历
//遍历set var set =new Set([1,2,2,2,3,4,5]); for(let x of set){console.log(x) }//遍历map var map=new Map([[1,1],[2,2],[3,3],[4,4]]); for (let x of map){console.log(x) }//遍历集合 var number=[1,5,5,6,'hong']; for (let x of number){console.log(x) }
四、流程控制
1. if语句
var age = 3;
if (age>3){ alert(">3");
}else if(age<5) { alert("<5");
}else { alert("不知道");
}
2. while循环
//while
while(age<100){age = age + 1;console.log(age)
}
//do while
do{age = age + 1;console.log(age)
}while(age<100)
3. for循环
for (let i = 0; i < 100 ; i++) {console.log(i)
}
4.for each循环
let arr=[1,3,4,5,6];
arr.forEach(function (value) {console.log(value)
})
JavaScript学习(一)相关推荐
- Javascript学习7 - 脚本化浏览器窗口
原文:Javascript学习7 - 脚本化浏览器窗口 本节讨论了文档对象模型.客户端Javascript下Window中的各项属性,包括计时器.Location对象.Histroy对象.窗口.浏览器 ...
- Java程序猿的JavaScript学习笔记(12——jQuery-扩展选择器)
计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...
- 《Javascript入门学习全集》 Javascript学习第二季(实战4)
Javascript学习第二季(实战4) 上章的例子虽然实现了功能,也做了相应的判断,也符合标准了.但还有一个问题就是: Choose an image. 在html中只是为了图片切换 而做的,而 ...
- Java程序猿的JavaScript学习笔记(汇总文件夹)
最终完结了,历时半个月. 内容包含: JavaScript面向对象特性分析,JavaScript高手必经之路. jQuery源代码级解析. jQuery EasyUI源代码级解析. Java程序猿的J ...
- JavaScript学习知识点归纳
JavaScript学习包括几大方面: 1.基础语法 2.JavaScript核心对象 3.DOM操作 4.BOM操作 5.正则表达式 6.AJAX 7.面向对象编程 以下依次为各版块相关内容==&g ...
- JavaScript学习笔记(五)
JavaScript学习笔记(五) ①Array类 本地对象 ②Date类 ①Global对象 对象的类型 内置对象 ②Math对象 宿主对象 今天继续学习JS中的对象,昨天内置对象Global对 ...
- JavaScript学习笔记(备忘录)
JavaScript学习笔记(备忘录) ===运算符 判断数值和类型是否相等.如: console.log('s'==='s') //输出trueconsole.log('1'===1) //输出fa ...
- Java程序猿的JavaScript学习笔记(10—— jQuery-在“类”层面扩展)
计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...
- JavaScript学习笔记(十)——学习心得与经验小结
JavaScript学习笔记(十)--学习心得与经验小结 目前我先列好提纲,利用每晚和周末的闲暇时间,将逐步写完 ^_^ 转载于:https://www.cnblogs.com/mixer/archi ...
- JavaScript 学习笔记(1)
1. 何为 Jscript JScript 是一种解释型的.基于对象的脚本语言. 局限性: 1) 不能使用该语言来编写独立运行的应用程序 2) 没有对读写文件的内置 ...
最新文章
- Maven web项目创建
- SAP ABAP实用技巧介绍系列之 ABAP XSLT 定义变量
- org.springframework.amqp.AmqpConnectException java.net.ConnectException的解决办法
- Java面试题整理,java常用排序算法图解
- Python实现堆排序
- ASP入门基础教程-VBScript概述及基本元素
- 凸优化有关的数值线性代数知识一:矩阵结构与算法复杂性
- Matlab分类识别实战||基于神经网络的深水船水声音数据集的识别与分类(GoogLeNet+SqueezeNet+AlexNet)
- 主流七款web服务器软件点评,几款比较好的WEB服务器软件推荐
- 第二届中国移动“梧桐杯”大数据应用创新大赛复活赛
- 强化学习读书笔记(一)
- 微信php echo换行,微信小程序文字显示换行问题
- 4.请编写一个函数void fun(char *tt,int pp[]),统计在tt字符串中“a”到“z”26个字母各自出现的次数,并依次放在pp所指数组中。
- VLC2.2.4命令参数
- 与你分享如何做好企业汇算清缴
- git clone 项目时总是提示输入密码
- C语言娱乐项目————6、圣诞树
- 开源我的基于字节的数据补丁算法库HDiffPatch
- 江苏科技大学苏州理工学院《计算机程序设计基础实践VC++》实验报告
- 利用贝叶斯算法对垃圾邮件进行分类处理
热门文章
- 阿里云云计算acp认证考试是什么?阿里云认证体系
- 【综合案例】网络贷款违约预测
- C++之 通讯录的实现(contact)
- jor(1):简表(JOR)开源的报表工具调研
- Python Requests库进阶用法——timeouts, retries, hooks
- kettle [表输入]选择Oracle数据源时预览错误--需要指定一个数据库连接.、错误初始化步骤[表输入 2]、Caused by: java.sql.SQLException: ORA-0091
- 第8章 无线局域网设备安装与调试
- CelebA人脸数据集
- android kotlin 接口回调
- telegram android 源码分析 (一)自动设置代理