【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: 输入: ...
随机推荐
- golang的sync.WaitGroup使用示例
下面一段代码 len(m) 不一定会打印为 10,为什么?.如果想要 len(m) 打印为 10,应该怎么修改代码? func main() { const N = 10 m := make(map[ ...
- CSRF攻击原理及预防手段
CSRF全程 Cross Site Request Forgery, 跨站域请求伪造.这种攻击方式相对于XSS,SQL注入等攻击方式比较晚被发现,今天就来讲解下这种攻击方式以及避免方式. 攻击过程 ...
- LeetCode(239.滑动窗口的最大值
题目: 给定一个数组nums,有一个大小为k的滑动窗口从数组的最左侧移动到最右侧,你只可以看到滑动窗口内的k个数字.滑动窗口每次只向右移动一位. 返回滑动窗口中的最大值. 示例: 输入: nums = ...
- JVM的组成
JVM一共有五大区域,程序计数器.虚拟机栈.本地方法栈.Java堆.方法区. 程序计数器 程序技术器是一块很小的内存空间,由于Java是支持多线程的.当线程数大于CPU数量时,CPU会按照时间片轮寻执 ...
- CSS每日学习笔记(2)
7.31.2019 1.CSS定位:允许你定义元素框相对于其正常位置应该出现的位置,或者相对于父元素.另一个元素甚至浏览器窗口本身的位置. CSS 有三种基本的定位机制:普通流.浮动和绝对定位.除非专 ...
- kerberos系列之hdfs&yarn认证配置
一.安装hadoop 1.解压安装包重命名安装目录 [root@cluster2_host1 data]# tar -zxvf hadoop-2.7.1.tar.gz -C /usr/local/ [ ...
- Natas27 Writeup(mysql溢出截断漏洞)
Natas27: 一个登录节界面,查看源码. <html> <head> <!-- This stuff in the header has nothing to do ...
- demo26-路径
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- CentOS7 如何安装JDK(以及卸载)
CentOS7 如何安装JDK(以及卸载) 1. 如何安装JDK? 购买云服务器后,会提供一个公网IP和内网IP,需要使用SSH工具连接到云服务器(推荐使用SecureCRT),随后就能在命令行中操作 ...
- 曹工说Spring Boot源码(26)-- 学习字节码也太难了,实在不能忍受了,写了个小小的字节码执行引擎
曹工说Spring Boot源码(26)-- 学习字节码也太难了,实在不能忍受了,写了个小小的字节码执行引擎 写在前面的话 相关背景及资源: 曹工说Spring Boot源码(1)-- Bean De ...