一、概念

  诞生于1995年,刚开始主要用于处理网页中的前端验证(指的是检查用户输入的内容是否符合一定的规则,比如用户名的长度、密码的长度、邮箱格式等)。

  前身是网景公司的LiveScript语言,傍的sun公司的Java语言的便利,它们之间没有什么关系,只是叫JavaScript

  JScript是微软公司1996年在其IE3.0浏览器中引入的,自己对JavaScript的实现,另立炉灶。

  为了确保不同浏览器的兼容性,所以两个公司共同制定了js的标准ECMAScript,这个标准就是一个文档,需要各大浏览器厂商去实现,即引擎。

  如:Firefox的spiderMonkey 引擎及 谷歌Chrome的v8引擎,不同浏览器有不同的引擎。

  一个完整的JavaScript有三个部分组成:ECMAscript(标准)+DOM(文档对象模型,操作网页)+BOM(浏览器对象模型,操作浏览器)

特点:

  解释性语言(不用去编译);类似于C和Java的语法结构;动态语言;基于原型的面向对象

二、js的编写位置

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>js的学习</title>
<!--引入js的标签-->
<script type="text/javascript"> /*1、控制浏览器弹出一个警告框 alert:警告
alert("这是我的第一行js代码");
* */ /*2、让计算机在页面中输出一个内容 ,就是往body中写入一个内容。document:文档
document.write("你是个好人!");
* */ /*3、向控制台输出一个内容 审查元素-console 调试代码 一般用户是看不到的
* console.log("你猜猜?");
*/
</script>
<!--可以引入外部的js 标签也是script,不是link 在src中写入路径
这样可以使不同页面中同时调用,可以利用浏览器的缓存机制 推荐使用 -->
<script type="text/javascript" src="../js/js01.js">
/*一旦引入外部js文件,那么里面的就不会执行,即使编写的有代码,如下边这句就不会显示
如果需要写,需要在创建一个script标签
*/
alert("我是内部js标签");
</script>
<script type="text/javascript">
alert("我是内部js");
</script> </head> <body>
<!--可以将js代码写到标签的onclick属性中
点击按钮时才会执行 注意里边写到是单引号
虽然可以写在标签中,但是会属于结构和行为的耦合,不推荐。可以写在script标签中或外部js文件中
-->
<button onclick="alert('你点你妈呢')"> 点我一下</button> <!--可以将js代码写到超链接的href属性中 这样点击超链接时 ,会执行js代码
注意书写格式 第2个超链接实现: 点了之后,没反应
-->
<a href="JavaScript:alert('滚一边去');"> 你也点我一下 </a> <br />
<a href="JavaScript:;"> 你也点我一下 </a>
</body>
</html>

三、基本语法(1)

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>js的基本语法</title>
<script type="text/javascript">
/* 1、js的注释: 多行注释,反斜杠加* ; 单行注释 “//”
* 2、严格区分大小写 HTML中不区分大小写
* 3、每条语句以“;”结尾。不写“;”也行,浏览器会自动添加,但可能出错。
* 4、js中忽略多个空格和换行,可对代码进行格式化,美观
5、字面量:就是常量,一些不可变的量 都是可以直接使用的,但不会直接使用。
变量:可以用来保存字面量变量,更加方便使用。需要先用var(variable :变量)声明
* 6、标识符:在js中可以有我们自主命名的都称之为标识符 例如:变量名、函数名、属性名
* 遵守规则:可以含有字母、数字、下划线、$ ;不能以数字开头;不能是js中的关键字和保留字
* 命名规范:驼峰规则 首字母小写,每个单词开头字母大写
* 7、js保存标识符采用的是utf-8来保存的,理论上字符都能用(包括中文)
* 8、6种数据类型:
* String(字符串)、 Number(数字)、Boolean(布尔值)、Null(空值)、Undefined(未定义) 基本数据类型
* Object(对象) 引用数据类型
* (1) String:引号不能混着用,同一类引号不能嵌套(即双引号里边不能用双引号,单不能用单),非要用需要转义字符\
* \"...\" 表示"..." \'...'\表示'...' \n表示换行 \t表示制表符 打印\用\\ 打印\\ 用\\\\
* (2) Number:在js中所有数值都是Number类型(包括整数和浮点数)
* 如果使用js计算浮点数,可能得到一个不精确的数 (尤其涉及到金融方面)
* (3)Boolean: true 还是 false
* (4)Null :只有一个值就是null 表示一个为空的对象 使用typeof会返回Object
* (5)Undefined:一个值undefined 声明一个变量但是没有赋值就是Undefined类 如 var b;
* 9、强制类型转换 转成String Number Boolean
* 转成String类
* 方式1: 调用被转换类型的toString方法 该方法不会影响原来变量,可以赋值给另一个变量查看
* 如:var a=30; var b=a.toString(); NULL和Undefined没有toString方法
* 方式2: 调用String函数,并被转换数据作为参数传给String函数 如String(a); 任何数据类型都能用
* 转Number类:
* 方式1:若是字符串,使用Number函数 直接传参数 如果是var a="abc"非数字 number(a); 会输出NaN,
* 如果字符串中是空串或者空格,会转成数字0;
* 如果是布尔值,则true转成1 false转成0; 如果是null,则转成0
* 方式2:专门用来对付字符串,对非String(如Boolean类)使用会将其先它转成String,再去转换
* parseInt() 把一个字符串转整数.将字符串中有效的整数取出转成Int 如a="120px" 把120转成整数类型
* a="120px78"只能把120取出来 a="120.90" 只能取出120 ;a="a123" 他取不出来
* 可以利用它取整
* parseFloat 把一个字符串转成浮点数,跟上边类似 可以取出有效的小数
* a="123.35.67px" 只能取出123.35 意思是小数点取一次
*
* */
var a=1314;
var age=20;
//alert(a);
var str="你好呀";//单引号 和 双引号都可以
var str2="我说: \"今天天气真好!\" ";
var bol=true;
var n1=null;
console.log(str2); //输出变量str2
console.log(typeof a);//typeof 检查变量类型 输出Number Number.MAX_VALUE 输出js的数字的最大值
//超出最大值输出Infinity 无穷 -Infinity 负无穷
console.log(typeof str);//NaN:不是一个数字 not a number.是个Number类型的 "a"*"b"就会返回这个
console.log(typeof bol); </script>
</head>
<body> </body>
</html>

  

  

  

  

  

[19/05/25-星期六] JavaScript_ 基础知识和基本语法_数据类型的更多相关文章

  1. 基础知识(C#语法、数据库SQL Server)回顾与总结

    前言 已经有大概一个多月没有更新博客,可能是开始变得有点懒散了吧,有时候想写,但是又需要额外投入更多的时间去学习,感觉精力完全不够用啊,所以为了弥补这一个多月的潜水,决定写一篇,衔接9月未写博客的空缺 ...

  2. [19/09/02-星期一] 基础知识_Python入门

    一.计算机基础 用户界面:TUI-文本交互界面: GUI-图形化交互界面 命令行:就是一种文本交互界面,可以使用一个一个的指令来操作计算机.任何计算机的操作系统都包含命令行(Windows.Linux ...

  3. [19/05/26-星期日] JavaScript_ 基本语法_运算符

    一.概念 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <titl ...

  4. MVC基础知识 – 2.新语法

    1.自动属性 Auto-Implemented Properties 2.隐式类型 var 3.参数默认值 和 命名参数 4.对象初始化器 与 集合初始化器 { } 5.匿名类 & 匿名方法 ...

  5. Python基础知识1-基础语法

    pyenv--版本管理工具(后续再补)可参见https://www.jianshu.com/p/8aaf2525fa80 冯诺依曼体系架构 编程基础 语言分类  低级语言到高级语言 高级语言 程序Pr ...

  6. MVC基础知识 – 2.新语法

    1.自动属性 Auto-Implemented Properties 2.隐式类型 var 3.参数默认值 和 命名参数 4.对象初始化器 与 集合初始化器 { } 5.匿名类 & 匿名方法 ...

  7. java基础知识(一)之数据类型和运算符

    1.标识符:JAVA里面我们可以为之命名的就是标识符,如变量.方法.类等. 但是标识符只能包含字母.数字.下划线(_)和美元符号($),并且只能以字母.下划线和美元符号开头不能以数字开头.2.变量:在 ...

  8. 【Python基础知识】【语法】【入门】

    一.Python概述 Python是一门面向对象的编程语言,拥有强大丰富的库,没有操作系统的限制,是一种优美.清晰的编程语言. 二.Python基础语法 1.Python标识符 标识符就是程序中定义的 ...

  9. CSS基础知识及其基本语法

    一.什么是CSS CSS 是层叠样式表( Cascading Style Sheets ) 的简称. 有时我们也会称之为CSS 样式表或级联样式表. CSS 也是一种标记语言 CSS 主要用于设置HT ...

随机推荐

  1. JS比较两个时间的时间差

    /** * 比较两个时间的时间差 * @param startTime 开始时间 * @param endTime 结束时间 * @demo compareTime(new Date('2019-12 ...

  2. 神经网络训练技巧:训练参数初始化、Drop out及Batch Normalization

    参数初始化: xavier初始化: https://blog.csdn.net/VictoriaW/article/details/73000632 条件:优秀的初始化应该使得各层的激活值和梯度的方差 ...

  3. 字符串与List互转

    List转字符串,用逗号隔开 List<string> list = new List<string>(); list.Add("a"); list.Add ...

  4. DDD领域驱动设计初探(三):仓储Repository(下)

    前言:上篇介绍了下仓储的代码架构示例以及简单分析了仓储了使用优势.本章还是继续来完善下仓储的设计.上章说了,仓储的最主要作用的分离领域层和具体的技术架构,使得领域层更加专注领域逻辑.那么涉及到具体的实 ...

  5. 初学oracle第三天

    体系结构 Oracle 采取的是 Client/Server 架构. 3.1 Client   3.1.1 Sqlplus 这是一个轻量级的功能强大的客户端, 是 dba 必须掌握的工具. 我们可以配 ...

  6. BSOJ5458 [NOI2018模拟5]三角剖分Bsh 分治最短路

    题意简述 给定一个正\(n\)边形及其三角剖分,每条边的长度为\(1\),给你\(q\)组询问,每次询问给定两个点\(x_i\)至\(y_i\)的最短距离. 做法 显然正多边形的三角剖分是一个平面图, ...

  7. MySQL两个时间相减

    SELECT TIMESTAMPDIFF(MONTH,'2009-10-01','2009-09-01'); interval可是: SECOND 秒 SECONDS MINUTE 分钟 MINUTE ...

  8. getchar、getch、getche 与 gets()

    一.getchar.getch.getche 1.getchar() getchar()从输入缓冲区读入一个字符,并返回这个字符的ASCII码(即函数返回值为int型),出错返回-1(EOF):如果用 ...

  9. 特征点检测算法——FAST角点

    上面的算法如SIFT.SURF提取到的特征也是非常优秀(有较强的不变性),但是时间消耗依然很大,而在一个系统中,特征提取仅仅是一部分,还要进行诸如配准.提纯.融合等后续算法.这使得实时性不好,降系了统 ...

  10. 【PowerOJ1736&网络流24题】飞行员配对方案问题(最小割)

    题意: n<=100,要求输出方案 思路:准备把没刷的24题从头搞一遍 输出方案的话就在增广的时候记一下另一端的编号就好 #include<bits/stdc++.h> using ...