ECMAScript标准:JavaScript核心语法

微软:Jscript

ECMAScript标准:一纸空文

JavaScript和JScritp都号称完全实现了

ECMAScript标准

W3C:DOM标准:专门操作HTML元素,CSS样式,事件的统一标准。

BOM:专门操作浏览器窗口的工具。

没标准,由浏览器厂商自行实现。

JavaScript=ECMAScript(核心语法)+DOM(操作网页内容)+BOM(操作浏览器窗口,很少用到)

Mozilla→Firefox

JSer最大挑战:浏览器兼容性问题

JavaScript典型用途:

  1. 客户端数据计算
  2. 客户端表单验证
  3. 动画

JavaScript特点:

纯文本;解释执行;弱类型;基于对象

  1. 使用浏览器自带的JS解释器:

F12→控制台

光标处写脚本代码,回车执行。

console:指代控制台:专门调试程序输出结果的窗口。

log:控制台console提供的一个功能:向控制台输出一行日志

多行:shift+enter→换行

**JavaScript中区分大小写!**

**字符串单双引号都行**

  1. 单独安装专门解释器软件:

node.js Chrome V8

win键+R→cmd→node

退出:两次Crtl+c

执行.js文件:1.先cd到.js文件所在路径

2.node 文件名 回车,。

  1. 随网页一同运行:

浏览器包含两种工具:

排版引擎:专门加载HTML内容和CSS样式

解释引擎:专门运行js脚本

<script></script>专门保存JS脚本块的元素

<script>中脚本块何时运行?随网页加载,解释执行。

<script>中都要用JS语法!

html元素的事件”属性”中:

什么是事件?元素可以根据鼠标或键盘的不同操作响应不同的交互行为。

<script>解释执行,读到才执行。先读到先执行。<script>放置的先后顺序影响程序结果。

优化:放在body的最后

一次定义,处处使用;一次修改,处处生效!

解决:凡是重复编写的代码块,都要封装为一个方法:

方法:执行一个专门功能的一组代码的序列。

定义在<head>下的<script>中

语法:function 方法名(){重用的代码块}

调用:方法名()→调用后立即执行。

*不调用不执行*

调试:but? debug!调试遇到问题了?那么解决问题!

只要没反应或效果没出来就是出错!→F12

查看错误原因→定位错误位置!

<script>脚本块中的错误,仅影响”当前脚本块”中出错”位置之后”的脚本执行,不影响<script>之外的其他元素加载或脚本块执行。

funcition中的错误:只有调用方法时才能出发!

页面内部脚本块问题:仅当前页面可用!

解决:外部.js文件!

什么是.js文件:专门保存js脚本源代码的文件。

源代码都要放到js解释器才能执行,不能双击。

如何使用.js文件?

  1. 创建.js文件,编写源代码
  2. 在页面中引入外部.js文件

内外部同名方法,解释执行!

ECMAScript:区分大小写;字符串必须用引号(单双都行)包裹;每条语句结尾都建议有分号。

语句:让程序可以做一件事的一行命令

脚本块:多行语句的序列

程序:让计算机模拟执行人类的想法

注释:不会被解释执行或显示的代码说明→给程序员看的。注释也占网页流量!生产环节必须去掉。

HTML注释:<!---->

CSS注释:/**/

JS注释://单行注释   /*多行注释*/

什么是变量?内存中专门储存数据的空间。程序都是在内存中运行。

何时使用变量?只要在程序中临时存储数据,都要放在变量中

怎么使用变量?声明,命名,初始化和使用

声明:在内存中开辟一个存储空间,并且起一个名字

怎么声明?var 变量名;

赋值:将等号右边的数据,装入等号左边的变量中!

如果未赋值:js默认赋值为undefined

命名规则:见名知意

保留字/关键字不能当变量名

保留字:js中已经占用的特殊意义的关键字

使用:使用变量名等效于直接使用变量中存储的数据

一般常量命名用大写。常量一旦创建,值不可改变的特殊变量。

程序里做动画只认角度不认弧度。

如何使用常量:const 常量名=常量值;

强调:只有等号可以向变量中存入新值,普通运算不会改变变量的值,只是使用变量的值。

只要带var就是声明,只要声明就会开辟内存空间。

js中新同名变量的空间会替换旧变量的空间。

有几个var,就会创建几个存储空间。

数据类型:变量中存储的数据的类型。

js是“弱类型”:变量本身没有类型,只有变量中的值才有类型。

一个变量,可以反复保存不同类型的数据。为什么要有数据类型:现实中所有数据根据用途不同,都分为不同数据类型。

JavaScript数据类型:分为原始类型与引用类型

原始类型:number:数字;string:字符串;boolean:布尔;null:空;undefined:未定义。

引用类型:object:对象;Function:函数;Number:数字;String:字符串;Boolean:布尔;Data:日期;Error:错误;

原始类型:数据保存在变量本地!

Number类型:表示一切用于比较或数学计算的数字

程序中数字分整数、浮点数(现实中的小数)

js中一切数字都用number保存,不分整数类型和小数类型。

如何定义number类型值?不带引号的数字字面量

程序中数字类型的舍入误差:程序中不能准确表示1/10,就好比现实中不能准确表示1/3一样!

如何修正:按指定位数四舍五入:数字.toFixed(小数位数)

console.log(change.toFixed(2));

将change中的数据,按2位小数四舍五入,因为计算机对于0.1有可能会算不尽,就跟我们算不尽三分之一一样,为了避免这个问题,需要使用这个方式。

今后计算结果小数位数超长,说明碰到舍入误差。按位四舍五入。

string类型:一串字符的序列!

Unicode:所有语言文字中的字符编号

Why:因为计算机智能处理数字,无法处理文字。

计算机处理unicode编号,就等效于处理编号对应的文字。

转义字符:专门表示非打印字符以及特殊符号

如何使用转义字符:\特殊符号  比如:\n换行   \t tab键

如果字符串内容中包含于语法相冲突的特殊字符,用\转为原文

字符串变量的内容一旦创建不可改变!如果改变,只能创建新字符串,抛弃旧字符串。

笔试题:

var str=”Hello”;

str=str+”World”;

有几个字符串?答:3个。

布尔boolean类型:仅有两个值的特殊数据类型:true,,false

何时使用boolean?只要一个值只有真假的两种情况,就用boolean类型。

undefined类型:表示一个变量仅声明过,但从未赋值。所以未赋值的变量,默认值都是undefined.

undefined类型的值还是undefined.

原始类型大小:

number:整数4字节,浮点数8字节

string:每个字符2字节

数据类型间的转换:

隐式转换:程序自动转换数据类型(坑)

弱类型:1.变量声明时不必限定数据类型,今后可能保存任何类型数据。

2.数据类型间可以自动类型转换

仅考虑+:只要有字符串参与,一切类型都加””变为字符串。如果没有字符串,都转为数字计算。如果遇到布尔类型的怎么办?那么true转为1,false转为0;

字符串加数字的案例:

强制转换:程序员通过调用专门函数手动转换类型

2 String: x.toString()→将X转为字符串类型,x可以为任意类型。

2 Number: Number(x)→将任意类型转为number类型

string→number:

转为整数:var num=parseInt(“str”)

读取字符串中的整数部分

  1. 从第一个字符向后读。
  2. 如果碰到第一个数字字符,开始获取数字,再次碰到不是数字的字符(包括小数点),停止读取。
  3. 如果开头碰到空格,忽略。
  4. 如果碰到的第一个非空格字符,不是数字说明不能转→NaN,NaN的意思是Not a Number。什么是NaN:不是数字(内容)的数字(类型)

转为浮点数:var num=parseFloat(“str”)

读取字符串中浮点数部分。

用法和parseInt完全相同

唯一差别:parseFloat认识小数点,仅认第一个。而且parseFloat如果能转成整数,就不会转为浮点数,例如25.0,那么就会转为25,.25转为0.25

prompt(“提示信息”):专门用于请求用户输入数据,收集数据的对话框。

var str=prompt(“提示信息”);

凡是从页面上获得的数据,都是字符串!必须先来转换再计算。

2015年10月23日JS笔记的更多相关文章

  1. [分享] 从定制Win7母盘到封装详细教程 By BILL ( 10月23日补充说明 )

    [分享] 从定制Win7母盘到封装详细教程 By BILL ( 10月23日补充说明 ) billcheung 发表于 2011-10-23 00:07:49 https://www.itsk.com ...

  2. 2016年10月23日 星期日 --出埃及记 Exodus 19:7

    2016年10月23日 星期日 --出埃及记 Exodus 19:7 So Moses went back and summoned the elders of the people and set ...

  3. Linux自用指令——2019年10月23日

    1.ls ls命令是列出目录内容(List Directory Contents)的意思.运行它就是列出文件夹里的内容,可能是文件也可能是文件夹. ls -a 列出目录所有文件,包含以.开始的隐藏文件 ...

  4. 路冉的JavaScript学习笔记-2015年1月23日

    1.JavaScript的数据类型 A.原始类型:包含数值.字符串.布尔值.空值(null)和未定义值(undefined). Js原始类型均为不可改变类型.对不可变类型调用任何自带方法都不会改变原始 ...

  5. 2015年10月22日CSS学习笔记

    XHTML1.0对HTML4.0的改进 借鉴了XML的写法,语法更加严格. 把页面的内容和样式分离了,废弃了html4中的表示样式的标签和属性.推荐使用css来描述页面的样式. CSS样式的优先级 ! ...

  6. 2015年10月16日HTML标签表单笔记

    textarea只是纯文本编辑框,要想输入各种样式的文本.图片.表格等需要使用“富文本编辑框”.html4暂无富文本编辑框,可使用第三方工具实现此效果. <textarea></te ...

  7. 2015年10月15日学习html基础笔记

    一个互联网公司的分工,小公司要求全能,拿一个项目全部做出来.大公司分工明细,主要步奏为策划人员策划方案,美工人员设计图有.psd.rp等,前端人员做静态页面,后台人员获取数据java php .net ...

  8. 初识Less(2015年05月23日)

    因为最近在研究Bootstrap,然后才了解到Less,听说Less很强大,又听说Bootstrap+Less会更搭,所以就决定也顺带了解下Less的相关知识. come  on...... 一.简介 ...

  9. 10月17日 JS开始日~

    1.变量提升 变量提升是浏览器的一个功能,在运行js代码之前,浏览器会给js一个全局作用域,叫window, window分为两个模块,一个叫做内存模块,一个叫做运行模块,内存模块找到当前作用域下的 ...

随机推荐

  1. bnuoj 4357 传送阵

    http://www.bnuoj.com/bnuoj/problem_show.php?pid=4357 [题意]:在1000个数中选择3个之和是m的倍数,可能有多种选择方案,请输出标号排序最小的一组 ...

  2. bnu 4358 左手定则 (搜索)

    http://www.bnuoj.com/bnuoj/problem_show.php?pid=4358 [题意]:给定起始位置和方向和目的地,按照左转.前进.右转.后退的优先级递减,也就是说能左转就 ...

  3. 一个 XSD 实例

    一个 XSD 实例 本节会为您演示如何编写一个 XML Schema.您还将学习到编写 schema 的不同方法. XML 文档 让我们看看这个名为 "shiporder.xml" ...

  4. uva 10369

    数组开小了  还RE了一遍.......  最小生成树    按费用从小到大排... #include <iostream> #include <algorithm> #inc ...

  5. windows下游戏服务器端框架Firefly安装说明及demo运行

    原地址:http://blog.csdn.net/wangqiuyun/article/details/11150503 本来公司一个网游服务器端选定了pomelo框架,后来出了个Firefly,为做 ...

  6. 玩转redis

    http://www.cnblogs.com/huangxincheng/p/5002794.html

  7. Qt:无标题栏无边框程序的拖动和改变大小

    From: http://blog.csdn.net/kfbyj/article/details/9284923 最近做项目遇到的问题,总结下. 有时候我们觉得系统的标题栏和按钮太丑太呆板,想做自己的 ...

  8. Ado.Net小练习01(数据库文件导出,导入)

    数据库文件导出主要程序: <span style="font-family: Arial, Helvetica, sans-serif;"><span style ...

  9. CSRF攻击[转]

    一.CSRF是什么? CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSR ...

  10. Android 通过 Intent 传递类对象

    Android中Intent传递类对象提供了两种方式一种是 通过实现Serializable接口传递对象,一种是通过实现Parcelable接口传递对象. 要求被传递的对象必须实现上述2种接口中的一种 ...