js 自学,云知梦知识 点理论
字符串连接符“+”:
js中使用+来连接,加号首先是连接,然后才是数学运算,如果加号两边有一个字符 为字符串就进行连接,两边都是数字才进行运算。如果 是“-" 减号,就会强行进行运算如alert(100-'5'),虽然5是字符型,但他强制运算为95。
1.var arr=[1,2,3];
2.var arr=new Array(1,2,3);注意大写,我在sublime小写不行。
obj=new Object();
obj=new Object();//对象
obj.username='user1';//对象属性
obj.age='20'
obj.sex='nan';
obj.say=function(){ //对象方法
alert('my name is user11');
}
document.write('<h1>my nameis '+obj.username+'<h1>');
document.write('<h1>my name is '+obj.age+'<h1>');
obj.say();
obj={'name':'user','age':'20'}
例子:
jsobj={'username':'user1',
'age':'20',
'sex':'nan',
'say':function(){
alert(this.sex);//this就是代表我自己(本对象)
}
};
alert(jsobj.username);
jsobj.say();
1.全局变量
变量定义时前面如果没有var则全部都是全局变量
1、str='user1';
function say(){
alert(str);
}
say();
2、
function say(){
str='user1';
}
say();
alert(str);
2.局部变量
只有在函数内部前面带var的变量为局部变量,局部变量只能在函数体内使用
function say(){
var str='user1';
}
say();
alert(str);
二、第2章(5-7)
类型测试
1、typeof();//判断变量类型
str="10";
if(typeof(str)=='string'){
alert("是字符串");
}else{
alert('不是字符串');
}
typeof()可判断的类型
1.string:字符串
2.number:整型和浮点型、NaN
3.boolean:布尔型
4.object:数组 、对象、JOSON,NULL
5.underfined:underfined
#一定要注意js中所有变量都是对象,只是为了区分 才分了上面5种。
2、arr instanceof Array;//可以测试数组类型
arr是一个变量,数组名,
instanceof :不能乱写,代表是arr是不是Array实例化出来的。
Array:注意大写,类。
a=new Array(1,2,3);
alert(a instanceof Array);
顶级全局方法:前面不需要对象,拿来就能用,注意大小写。
• typeof();
• parseInt();强制转整型
str=''10abc;
alert(Number(str)+5); NaN
alert(parseInt(str)+5); 15
• parseFloat();强制转浮点型
• eval();执行字符串内部表达式
b='a=1+1';
eval(b);
alert(a);
结果2
• Number();有了parseInt,不需要用
• String();整型转字符串
• Boolean();
num=10;
alert(Boolean(num)+5);结果为6
数字里除了0是假,其它都是真
加号如果 两边不是字符型,就做数学运算,强制改变两边类型,布尔类型真为1,假为0
在JS中前面的对象不用写的两种情况
1、Global对象(js内部对象)
• typeof();//其实它的全是Global.typeof();//用的时候 不需要加Global
• parseInt();
• parseFloat();
• eval();
• Number();
• String();
• Boolean();
2、window对象(浏览器提供的标签对象,如dom对象)
• alert();//其实它的全是window.alert();//用的时候不需要加window
变量类型转换
1.整型->字符串
1)num=10;
str=string(num);
2)num=10;
str=num+'';
2、字符串->整型
1)str='10px';
num=parseInt(str);
2)Number();现在不用了。
3、所有类型->布尔类型
1)Boolean();
2)!!data
如V ='0';
b=!!V;
4、所有类型->布尔类型(为假的情况)
1)字符串('')
2)整型(0)
3)浮点型(0.0)
4)null
5)NaN
6)undefined
如果 字符串里有个空格是真的。如a=" ";
json字符串转Josn对象
str="{'username':'user1','age':'20'}";
obj=eval('('+str+')');//加括号
alert(str);
结果:[object Object]
变量运算符:
1.+-*、%
2.in :检查某一个属性是否是这个对象里面的,数组里判断的是下标是不是在这个数组 中。
1.arr=['a','b','c'];
alert(a in arr);
2. obj={'username':'user1','age':'20'};
alert('username' in obj);
3.instanceof:检查某个对象是否是由某个构造函数产生的
4.delete://删除变量,不能删除用var(局部)定义的变量
V='abc'
delete(V);
js语法
1.if语句
条件必须成立,只能命中其一,从上往下执行,从左往右执行。
if(){
}else if{
}else{
}
2.switch语句
条件只是等于,
week=5;
switch(week){
case 1:
alert('周一');
break;
case 2:
alert('周二');
break;
case 3:
alert('周三');
break;
case 4:
alert('周四');
break;
case 5:
alert('周五');
break;
case 6:
alert('周六');
break;
default:
alert('周日');
}
3.while循环
i=0;
while(i<10){
document.write('<h1>'+i+'</h1>');
i++;
}
4.for 循环
for(i=0;i<3;i++){
document.write('<h1>'+i+'</h1>');
i++;
}
5.forIn遍历:对json对象进行遍历
obj={'username':'user1','age':'20','sex':'nv'};
for(i in obj){
document.write('<h1>'+i+'->'+obj[i]+'</h1>')
}
结果
username->user1
age->20
sex->nv
解释:第一次把obj的对象第一个属性赋给i,第二次把第二个属性赋给i,第三次........,那i的值 为username,age,sex
本来属性得到值是,obj.i,但JS里规定对象.属性,对象和方法名不可以是变量,现在i是变量,所以只能写成obj[i]
例子:
九九乘法表
for(i=1;i<=9;i++){
document.write('<h3>');
for(j=1;j<=i;j++){
document.write('<span>'+j+'x'+i+'='+(j*i)+'</span> ')
}
document.write('</h3>')
}
1.普通函数
function show(){}
function out(n=9,k=1){//定义默认值
for(i=1;i<=n;i++){
document.write('<h3>');
for(j=1;j<=i;j++){
document.write('<span>'+j+'x'+i+'='+(j*i)+'</span> ')
}
document.write('</h3>')
}
for(j=0;j<k;j++){
document.write('<hr>');
}
}
out(3,4) //调用函数out
2.匿名函数
obj.say=function(){}
out=function(n,k){
....
}
消息框
警告框:
alert();
确认框:
confirm();
<body>
<a href="http://www.baidu.com" id='s'>百度M</a>
</body>
<script>
aobj=dogopj=document.getElementById('s');
aobj.onclick=function(){
r=confirm('你确认去百度吗?');
if(!r){
return false;
}
}
</script>
提示框:
prompt();
<body>
<a href="http://www.baidu.com" id='s'>
<img src="" id='imgid'>
</a>
</body>
<script>
imgobj=document.getElementById('imgid');//获取JS对象
r=prompt('请输入图片名字');
img=r+'.png';
imgobj.src='.png'
</script>
js对象:
1.js内置对象
2.js事件对象(js内置对象之一,因为内容庞大,特别讲一下。)
3.BOM浏览器对象
4.DOM文档对象(document)
数学对象:
1.生成对象
Math;大写
2.属性
Math.PI:圆周率
3.方法
Math.ceil();取上一个整数,不舍
alert(Math.ceil(3.14));结果为4
Math.floor();取下一个整数,不入
alert(Math.ceil(3.54));结果为4
Math.round();四舍五入
alert(Math.ceil(3.14));结果为3
alert(Math.ceil(3.14));结果为3
Math.random();取随机数(0到1之间的小数)
Math.max();取最大数
alert(Math.min(0,3,5));结果:5
Math.min();取最小数
alert(Math.mxa(0,3,5));结果:0
例子:随机展示图
arr=['a.png','b.png','c.png','d.png','e.png'];
rand=Math.random();
tot=arr.length;
sub=Math.floor(rand*tot);
imgobj=doucment.getElementById('imgid');
imgobj.src=arr{sub};
js 自学,云知梦知识 点理论的更多相关文章
- HTML5 云知梦自觉,记录知识 点
第一章(1--3) 文档类型:<!doctype html> 网站代码结构:<html> <head> <meta charset="UTF-8&q ...
- 2015 前端[JS]工程师必知必会
2015 前端[JS]工程师必知必会 本文摘自:http://zhuanlan.zhihu.com/FrontendMagazine/20002850 ,因为好东东西暂时没看懂,所以暂时保留下来,供以 ...
- 微信小程序必知相关知识
微信小程序必知相关知识 1 请谈谈微信小程序主要目录和文件的作用? project.config.json 项目配置文件,用得最多的就是配置是否开启https校验: App.js 设置一些全局的基础数 ...
- 《Ext JS模板与组件基本知识框架图----模板》
最近在整理Ext JS的模板和组件,在参考<Ext JS权威指南>,<Ext JS Web应用程序开发指南>,<Ext JS API>等相关书籍后才写下这篇< ...
- js初学必知三重点
这里列出了一些JS重要知识点(不全面,但自己感觉很重要).彻底理解并掌握这些知识点,对于每个想要深入学习JS的朋友应该都是必须的. 讲解还是以示例代码搭配注释的形式,这里做个小目录: JS代码预解析原 ...
- react.js 你应知道的9件事
React.js 初学者应该知道的 9 件事 本文假定你已经有了一下基本的概念.如果你不熟悉 component.props 或者 state 这些名词,你最好先去阅读下官方起步和手册.下面的代码 ...
- JS自学笔记05
JS自学笔记05 1.例题 产生随机的16进制颜色 function getColor(){ var str="#"; var arr=["0","1 ...
- JS自学笔记04
JS自学笔记04 arguments[索引] 实参的值 1.对象 1)创建对象 ①调用系统的构造函数创建对象 var obj=new Object(); //添加属性.对象.名字=值; obj.nam ...
- JS自学笔记03
JS自学笔记03 1.函数练习: 如果函数所需参数为数组,在声明和定义时按照普通变量名书写参数列表,在编写函数体内容时体现其为一个数组即可,再传参时可以直接将具体的数组传进去 即 var max=ge ...
随机推荐
- libevent2源码分析之一:前言
event的本质 libevent2中的event的本质是什么?只要是非同步阻塞的运行方式,肯定遵循事件的订阅-发布模型.通过event_new的函数原型可以理解,一个event即代表一次订阅,建立起 ...
- Android Exception 15(关于使用RecyclerView的异常)
04-07 16:32:32.815: E/AndroidRuntime(16173): FATAL EXCEPTION: main 04-07 16:32:32.815: E/AndroidRunt ...
- Atitit 文件上传 架构设计 实现机制 解决方案 实践java php c#.net js javascript c++ python
Atitit 文件上传 架构设计 实现机制 解决方案 实践java php c#.net js javascript c++ python 1. 上传的几点要求2 1.1. 本地预览2 1.2 ...
- Xilinx FPGA 学习笔记
一.时序设计 方法1.通过状态机来实现,通过verilog控制FPGA,让它该快的时候快,该慢的时候慢. 方法2.FPGA中运行CPU 把逻辑控制顺序复杂的事情用C代码来实现,而实时处理部分用veri ...
- python模块学习之__future__
每个程序在更新版本之后,都会相较于上一个版本有所改动.这些改动会给程序的使用者造成不小的困扰! 比如python2.xx和3.xx的改动,足够让新手们头大了! 在3中, u'xxx'和'xxx'都是字 ...
- C 调用 lua 函数
C 调用 lua 函数 需要考虑的问题: 1. 使用 lua_pcall 可以调用 lua 函数,首先把 lua 函数入栈,然后把参数入栈, lua_pcall(luaState, 参数个数, 返回值 ...
- response.addCookie(cookie),添加失败
问题:添加cookie到浏览器如下,在浏览器f12查看请求过程,发现cookie中只添加了:JSESSIONID E849DAFEE4A36B6D955F9D96D6D06207 却没有想要的“use ...
- 键值对集合 dict(字典)
xx= { ss, ss } 创建字典 len(ss) 返回字典到长度,len函数可以返回任何集合的长度,list.tuple.dict都是集合的一种 什么是dict 我们已经知道,list 和 tu ...
- 【转】如何彻底删除SVN中的文件和文件夹(附恢复方法)
这里假设SVN项目的目录为 /data/svn/project,我们想排除trunk/test.exe文件和trunk/notallowed/目录,操作步骤如下及执行的svn命令(在svn安装目录的b ...
- jQuery CSS 操作函数
CSS 属性 描述 css() 设置或返回匹配元素的样式属性. height() 设置或返回匹配元素的高度. offset() 返回第一个匹配元素相对于文档的位置. offsetParent() 返回 ...