【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: 输入: ...
随机推荐
- C# Socket编程实现简单的局域网聊天器
目录 前言 编码 服务端监听接口 客户端连接接口 文字发送接口 文件发送接口 信息接收接口(文字与文件) 使用 注意事项 源码 前言 最近在学习C# Socket相关的知识,学习之余,动手做了一个简单 ...
- 如何快速高效率地学习Go语言
要想快速高效率地掌握Go语言,关键是要通过不断写代码去训练,熟能生巧.方法是没问题的,但具体的路径呢?就像开车,能不能给个导航?我希望这篇文章能起到一个导航的作用,这里提供的路径,应该对很多人都适合. ...
- Python可以用中文命名
Python中文命名 命名规则数字.字母.下划线 环境 python 3.7.3 x64 win10 现象 Python在命名的地方都是可以用中文命名 如: 变量 中文下划线无法被识别 打出中文下划线 ...
- webpack,Babel,babel-loader的关系
本文将要介绍 webpack,Babel,babel-loader 的关系.理清楚他们各自做了什么事情. 通常我们新建一个项目,会先配置webpack,然后配置babel:babel是一个编译工具,实 ...
- hGame2020第二周第一题题解
Description: Cosmos通过两个小时速成了PHP+HTML,他信心满满的写了一个博客,他说要从博客后台开始......(flag在根目录, 禁止使用任何扫描器) Challenge Ad ...
- identityserver4源码解析_2_元数据接口
目录 identityserver4源码解析_1_项目结构 identityserver4源码解析_2_元数据接口 identityserver4源码解析_3_认证接口 identityserver4 ...
- 题解 P6249 【神帖】
这道题目我一看到就想起了经典题--关路灯 但是时间好像不太好搞啊! 我们可以枚举时间qwq 考虑 \(4\) 维 \(dp\) \(f_{i,j,t,0/1}\) 表示 \(zrl\) 看了第 \(i ...
- Netty中ChannelHandler的生命周期
在使用Netty进行网络编程的时候,通常需要在网络连接的不同阶段进行相应的操作,比如在连接建立时,客户端向服务端发起认证,在接收到数据时对数据内容进行解析等等.那么,连接的不同阶段在netty中如何表 ...
- 图-连通分量-DFS-749. 隔离病毒
2020-03-17 21:56:20 问题描述: 病毒扩散得很快,现在你的任务是尽可能地通过安装防火墙来隔离病毒. 假设世界由二维矩阵组成,0 表示该区域未感染病毒,而 1 表示该区域已感染病毒.可 ...
- Idea无法调出搜狗等中文输入法
在用户目录下的文件.xprofile 中添加一下内容 export GTK_IM_MODULE=fcitx export QT_IM_MODULE=fcitx export XMODIFIERS=“@ ...