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 ...
随机推荐
- XML之Schema
前面学习了DTD.相同我们有了一套更完好的定义法则-Schema. 以下环绕Schema是什么.为何用以及怎么用谈谈自己的感受. XML Schema是基于XML的DTD替代者. XML Schema ...
- 用shell查找某目录下的最大文件(转)
这是一个很有趣的问题,因为作为一个shell菜鸟,我第一时间是没有任何想法的.心里纳闷为什么这样的操作Linux居然没有直接的命令实现这样的查询. 很自然地,第一感觉就是用awk去实现,因为菜鸟我看a ...
- 攻克了Cocoapods Undefined symbols for architecture _OBJC_CLASS_xxxx的问题,辛苦死我了,记录下之后有空在研究
网上找了一大包将尽3个小时没有解决,原本以为是我升级到10.10的原因,把cocoapod 重装 stackoverflow google 用尽了也不知道为啥 结果是这个样子的 编译出现这个.... ...
- SAXReader解析xml文件demo
1. 加入jar包 2. 代码解析 package practice; import java.io.File; import java.util.List; import org.dom4j.Doc ...
- 使用CAsyncSocket总结
最近想起CAsyncSocket这个类,记得很早以前用过,现在却想不起来怎么用了,翻了翻以前的代码又看了看msdn感觉这个类做简单的异步socket太简单了,几行代码就可以搞定,在此先做个总结. 不管 ...
- MySQL(8)--Cluster 7.4 rpm centos7
还没来得及写.我就知道一个月完毕不了,暂时添加的工作总是拖后腿. .. MySQL集群 docker下安装MySQL Cluster报错了.是我image的包少了perl.老实装吧.image又小不了 ...
- [转载]几个开源Javascript图形库
[转载]原文地址:http://www.cnblogs.com/webgis8/articles/1516639.html 因为Google Map项目的需要,最近一直在寻求相关的Javascript ...
- Android JNI和NDK学习(01)--搭建NDK开发环境(转)
本文转自:http://www.cnblogs.com/skywang12345/archive/2013/05/23/3095013.html 本文主要介绍“JNI”.“Android NDK”以及 ...
- Python内置函数之all()
all()函数返回值不是True就是False. 它只能传入一个参数,而且参数必须是可迭代对象,换句话说,参数不是元组就是列表(通常情况下). all()中的可迭代对象所有元素值为True或者不包含元 ...
- java-TransDemo
字符串转换成其他基本类型,以及包装类的自动装箱.拆箱 package com.example; import java.util.Scanner; import java.lang.*; /** * ...