【JavaScript】js01
一,javascript 历史。
netscape -> 浏览器。 -> livescript
微软 -> jscript
netscape -> ecma 组织 -> ecma - 262标准。
java 语言 -> ecmascript -> javascript。
javascript 和 java 没有半毛钱关系。
二,js 都干什么。
1. 表单验证。
2. 加特效。
3. 书写 ajax,无刷新地请求数据库。
三,怎么去学习。
1. ecmascript,基本语法。
2. BOM,浏览器对象模型(兼容性问题)。
3. DOM,文档对象模型。
四,js 特点。
1. 浏览器脚本语言。
2. 跨平台。
3. 安全。
4. 兼容性不好。
五,基本语法。
1,js 书写场景。
(1) 写在 事件属性里。
<div onclick="alert('123');" style="width:100px; height: 100px;background: #f00"></div>
(2) 写在 script 标签里。
<script type="text/javascript"> alert('你好'); </script>
(3) 写在 外部文件里。
注:当使用script标签的src属性时,script标签中一定不能放入任何JS代码。
<script type="text/javascript" src="./1.js"></script>
(4) 写在 a 链接 href 属性里。
<a href="javascript:alert('百度');">百度</a>
2. js 变量。
字母数字下划线($),不能以数字开头,严格区分大小写,不能使用关键字。
3. js 注释
(1) //
(2) /* */
4. 分隔符。
(1) ; 可有可无,但推荐加上,可以压缩。
(2) 不加;可用换行代替
5. js 数据类型。
6种。
(1)boolean
(2)string
① 单引号和双引号均可解析转义字符
② 单引号和双引号均不能解析变量
③ 变量与字符串、变量与变量要使用+来连接。
④ 单引号和双引号可以互相嵌套,如果单引号中要嵌套单引号,需要将单引号转义,同理,双引号相同
(3)object
(4)function
(5)undefined
(6)number
注意:永远不要测试某个特定的浮点数的值!
NaN的特点:
1.任何涉及NaN的操作,结果都为NaN
2.NaN与任何值都不相等,包括NaN本身
使用 typeof 检测出来的只有这6种。
万物皆空。null 类型。
6. js 数据类型转换。
(1) 强制类型转换
① parseInt()
A.忽略字符串前空格,直接找到第一个非空格字符
B.第一个字符不是数字或负号,返回NaN。
C.空字符串,返回NaN。
D.第一个字符是数字,会继续解析,知道解析完或遇到第一个非数字字符
② parseFloat()
1.第一个小数点是有效的,第二个小数点无效
2.始终忽略前面的0,不分进制数
3.十六进制会被转换成0
4.空字符串转换为NaN
③ Number()
A.如果是布尔值,true和false将分别转换为1和0
B.如果是数字值,只是简单的传入和返回
C.如果是null,返回0
D.如果undefined,返回NaN
E.如果是字符串,遵循下列规则:
a. “11”会变成11,“011”会变成11
b.“1.1”会变成1.1
c.“0xf”会变成相同大小的十进制整数值
d. 如果字符串是空的,则将其转换为0
e. 如果字符串包含除上述格式之外的字符,则将其转换成NaN
④ String()
⑤ Boolean()
(2) 自动类型转换
计算
if() //0,0.0,false,'',null,undefined
7. 运算符。
算术
字符串
赋
比较
逻辑
位
其他
8. 流程控制,循环,控制。
if
switch
while
do... while
for
九九乘法表。
10. 函数
(1)函数声明:
① 函数语句:function 函数名(){}
② 函数表达式:var func = function(){}
③ 构造函数:var func = new Function("函数体");
(2)函数参数:
function func(a, b, c)// 不要给默认值。
① JavaScript中的函数不允许给参数赋初始值
② 传递的参数个数与函数定义的参数个数不匹配时:
a.如果传递的参数个数小于函数定义的参数个数,JavaScript会自动将多余的参数值设为undefined;
b.如果传递的参数个数大于函数定义的参数个数,那么多余传递的参数将会被忽略掉。
③判断传递的函数参数的个数
可以使用arguments.length
④获得实际传递参数的值
for(var i=0;i<arguments.length;i++){
alert(arguments[i]);
}
(3)函数返回值:
如果没有 return 默认返回 undefined
(4)作用域:
① 变量的优先级
如果在函数体里定义了一个与全局变量名相同的局部变量,那么在该函数体里全局变量将不起作用,就相当于全局变量并不存在。
② 在函数体内定义全局变量
在函数体内使用var关键字定义的变量为局部变量,如果要在函数体内定义全局变量,则不能使用var关键字,只需要直接给变量赋值即可。
③ 嵌套函数体中的变量的范围
在JavaScript中的函数是可以嵌套的,每个嵌套函数中的变量都可以在该函数体内,以及嵌套的函数体内起作用,但不能在父级或父级以上的函数体内起作用。
④ 局部变量在整个函数体内都有效
JavaScript只要在函数体内定义了局部变量,该局部变量就会在整个函数体内有效,而不是从定义局部变量的那行代码开始起效。
常用的函数。
eval
eval()函数是使用得比较多的一个函数,该函数的作用是将字符串指定为对象。
escape
escape()函数的作用是将字符串中的非文字、数字的字符,如#,$,%,^,&,空格,括号等,转换成相应的ASCII值。主要用在字符串的处理上,用于保证这些特殊字符不会干扰到字符串的处理。
unescape
unescape()函数的作用是将ASCII码的文字转换成一般文字。
11. 对象
对象声明:
new Object();
{}
构造方法。new Girl(name,age);
对象的属性操作
.
o.name = 'zs';
delete o.name;
o.name = 'ls';
o.name;
[]
o['name'] = 'zs';
delete o['name'];
o['name'] = 'ls';
o['name'];
var str = 'height';
o[str] = '180cm';
对象的方法操作。
o.sing();
o['sing']();
json,一种通用的数据容器(格式)。
<script type="text/javascript"> // json是一个通用数据容器。 var obj = {
'name':'张三',
'age':18,
'sing':function()
{
alert('sing');
},
dance:function()
{
alert('dance');
}
}; </script>
for in
var obj = {
'name':'zs',
'age':'ls',
'height':'180cm'
}; for( i in obj)
{
console.log(i);
console.log(obj[i]);
}
12. with
简化操作。但是效率低下。
五,内置对象
布尔对象,字符串对象,数组对象,日期对象,数学对象,正则对象...
布尔对象,
字符串对象,
属性:
length
方法:
查手册。
trim();这是浏览器帮你添加的一个方法,不是标准的。
永远是返回一个新的字符串。
数组对象
属性:
length
方法:
查手册。
日期对象。
// 获取年月日时分秒。
//一个获取当前时间日期的实例
// 1. 获取元素。
var did = document.getElementById('did'); // 入口。
run(); // 4. 设置定时器。
setInterval(function(){ run(); }, 1000); // 封装函数。
function run()
{
var d = new Date(); // 2017-5-12 10:14:27 // 获取年,月,日,时,分,秒。
var y = d.getYear();
var y = d.getFullYear();
var m = d.getMonth() + 1;
var dd = d.getDate();
var h = d.getHours();
var mm = d.getMinutes();
var s = d.getSeconds(); // console.log(d);
// console.log(y);
// console.log(m);
// console.log(dd);
// console.log(h);
// console.log(mm);
// console.log(s); if(s < 10)
{
s = '0' + s;
} if(mm < 10)
{
mm = '0' + mm;
} if(h < 10)
{
h = '0' + h;
} var str = y + '-' + m + '-' + dd + ' ' + h + ':' + mm + ':' + s;
// document.write(str); // 2. 添加样式。
did.style.width = '200px';
did.style.height = '200px';
did.style.backgroundColor = 'yellow'; // 3. 写入时间字符串。
did.innerHTML = str;
}
数学对象
是一个静态对象。
Math.PI
查手册。
随机数
获取 m -n 之间的随机数。
Math.ceil(Math.random()* (n - m + 1)) + m -1 ;
【JavaScript】js01的更多相关文章
- 【javascript】html5中使用canvas编写头像上传截取功能
[javascript]html5中使用canvas编写头像上传截取功能 本人对canvas很是喜欢,于是想仿照新浪微博头像上传功能(前端使用canvas) 本程序目前在谷歌浏览器和火狐浏览器测试可用 ...
- 【JavaScript】出现即使设置了ID也获取不到的可能原因与window.onload
有时候.在JavaScript中.即使设置了ID也有可能出现document.getElementById()获取不到的情况,然后你就開始想document是否写错之类的.事实上根本就不是你的代码的大 ...
- 【JavaScript】我的JavaScript技术总结第一篇——编程细节
遍历数组 for (var i=0, l=arr.length; i<l; i++) 这样写的一个好处就是让每次循环少一步获取数组对象长度的操作,数组长度越长,价值越明显. 判断变量的真假 if ...
- 【JavaScript】下大雪
引用[JavaScript]满天星的代码,稍作修改的结果: function drawStars() { for (i = 1; i < 100; ++i) { ctx.fillText(&qu ...
- 【JavaScript】JavaScript中的replaceAll
JavaScript中是没有replaceAll的.仅仅有replace,replace仅仅能替换字符中的第一个字符.并且这个replace里面不支持正則表達式,以达到replaceAll的目的. 只 ...
- 【JavaScript】Leetcode每日一题-在D天内送包裹的能力
[JavaScript]Leetcode每日一题-在D天内送包裹的能力 [题目描述] 传送带上的包裹必须在 D 天内从一个港口运送到另一个港口. 传送带上的第 i 个包裹的重量为 weights[i] ...
- 【JavaScript】Leetcode每日一题-青蛙过河
[JavaScript]Leetcode每日一题-青蛙过河 [题目描述] 一只青蛙想要过河. 假定河流被等分为若干个单元格,并且在每一个单元格内都有可能放有一块石子(也有可能没有). 青蛙可以跳上石子 ...
- 【JavaScript】Leetcode每日一题-平方数之和
[JavaScript]Leetcode每日一题-平方数之和 [题目描述] 给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a2 + b2 = c . 示例1: 输入:c = 5 ...
- 【JavaScript】Leetcode每日一题-二叉搜索树的范围和
[JavaScript]Leetcode每日一题-二叉搜索树的范围和 [题目描述] 给定二叉搜索树的根结点 root,返回值位于范围 [low, high] 之间的所有结点的值的和. 示例1: 输入: ...
随机推荐
- MDI设置父子窗体
1.新建父窗体,设置窗体属性:IsMdicontainer设置成true; 2.拖入button控件,修改button中的text. 3.点击button控件设置代码: //1.窗体实例化 Form ...
- SQL逗号合并一列多行的值
select stuff((select ','+行名 from 表名 for xml path('')),1,1,'')
- js 随机产生100个0~1000之间的整数
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- MVC超链接调用控制器内的方法
<a href="hello/Layout?name=Tom"><h1><span>Hello</span>World</h1 ...
- [译]ABP框架v2.3.0已经发布!
在新冠病毒的日子里,我们发布了ABP框架v2.3, 这篇文章将说明本次发布新增内容和过去的两周我们做了什么. 关于新冠病毒和我们的团队 关于冠状病毒的状况我们很难过.在Volosoft的团队,我们有不 ...
- LSTM + linear-CRF序列标注笔记
CRF 许多随机变量组成一个无向图G = {V, E},V代表顶点,E代表顶点间相连的边, 每个顶点代表一个随机变量,边代表两个随机变量间存在相互影响关系(变量非独立), 如果随机变量根据图的结构而具 ...
- Python——项目-小游戏2-动画绘制
实现游戏循环还有事件的监听 在上一讲中 你需要完成这样的这样的效果, 如果你还没有完成,请不要继续往下阅读!!切记切记切记.,重要的事情说三遍 我们来看一下什么是游戏循环 所谓的游戏循环很好的理解 就 ...
- C# 微信 生活助手 空气质量 天气预报等 效果展示 数据抓取 (二)
此文主要是 中国天气网和中国环境监测总站的数据抓取 打算开放全部数据抓取源代码 已在服务器上 稳定运行半个月 webapi http://api.xuzhiheng.cn/ 常量 /// <su ...
- springBoot mybatis mysql pagehelper layui 分页
<!-- 加入 pagehelper 分页插件 jar包--><dependency> <groupId>com.github.pagehelper</gro ...
- ASP.NET Core去掉HTTPS配置和SSL证书
如果你的项目一不小心配置了https 右击项目=>属性=>调试=>启用SSL=>选择去掉 测试