2015A股

15 今年入市的新股民既是倒霉的又是幸运的,把几十年老股民都没遇到过的千股涨停,千股跌停,千股停牌,千股涨停到跌停,千股跌停到涨停全都过了一把瘾,在今年这么变态的市场中还能活下来的人,后面会快速变的成熟,也会有一批人较之前入市的股民提前10年成为大师,逆境中人的成长速度是惊人的!

JS操作HTML属性

属性读写操作的注意事项

  • JS属性中不允许出现”-“,例如font-size改为fontSize
  • class是JS里面的保留字,在JS作用Class要用ClassName
  • 所有相对路径都别拿来做判断(例如img里的src,href)
  • 颜色值不要拿来做判断(因为有red #f00 rgb(250,0,0)等不同写法)
  • innerHTML的值不要拿来做判断
  • IE6 7 8中表单元素的type更改不了,不支持,会报错
  • 在有些浏览器中,直接更改Float值可能不支持。在JS里,可以用IE(styleFloat)和非IE(cssfloat)来区别对待
  • 不能做判断的东西,可以创造一个开关,利用布尔值来实现

JS数据类型转换

JS数据类型转换

  • 把字符串转化为数字,转化不了的就是NaN
    • Number
1
2
3
4
5
6
7
8
9
10
console.log(Number("100")) //100 
console.log(Number("")) //0
console.log(Number(false)) //0
console.log(Number(" ")) //0
console.log(Number([123])) //123
console.log(Number(null)) //0
console.log(Number(undefined)) //NaN
console.log(Number({})) //NaN
console.log(Number(function(){})) //NaN
console.log(Number('100px')) //NaN
  • parseInt和parseFloat 一个只能转出整数部分,一个能转出小数部分
  • 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    var a = '100px';
    alert(parseInt(a)); //100

    var b = '100px123456789';
    alert(parseInt(b)); //100

    var d = '-100px';
    alert(parseInt(d)); //-100 parseInt还是认加减号的

    var e = ' 100px';
    alert(parseInt(e)); //100 parseInt也是认空格的

    var f = '000000100px';
    alert(parseInt(f)); //100

    var g = '12.34元';
    alert(parseInt(g)); //12 parseInt只能转出整数
    var c = true;
    alert(parseInt(c)); //NaN

    //parseInt也不能用于转函数等
  • parseInt和parseFloat配合使用,来判断是整数还是小数

1
2
3
4
5
6
var num = '200.345';
if(parseInt(num) == parseFloat(num)) {
alert(num + '是整数');
} else {
alert(num + '是小数');
}
  • 隐形类型转化
    • -*/%可以将字符串转化为数字
    • +号可以将数字转换为字符串
    • ++ –可以将字符串转化为数字
    • <> 可以将字符串转化为数字
    • ! 可以将数据类型转化为布尔型
    • ==

函数传参

理解函数传参

函数的参数是放在 argument里面,可以看做arguments是参数的载体

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
function sum(){ 
console.log(arguments);
};
sum(1);
sum(1, 2, 3);
/*js中的函数无传统意义的重载*/
function sum(a, b){
return a + b;
}
function sum(a, b, c){
return a + b + c;
}
sum(1, 2); //出错
sum(1, 2, 3);
/*用arguemnts实现重载*/
function newSum(){
var sum = 0;
for(var i = 0; i< arguments.length; i++){
sum += arguments[i];
}
return sum;
}

函数重载: 几个相同函数名+不同函数参数 = 可以实现不同功能
JS不支持函数重载,后定义的函数会把之前的同名的函数覆盖

函数返回值-return详解以及应用

函数返回值-return详解以及应用

  • return返回值:函数+括号就相当于得到了该函数里return后面的值
  • 所有函数默认返回值是:undefined
  • 可返回:数字、布尔值、字符串、函数、对象(obj、[]、{}、null)、undefined
  • return之后 代码不执行

几个例子

  • 例子1 弹出 function(){alert(1)}

    1
    2
    3
    4
    5
    6
    alert fn1(); 
    function fn1(){
    return function(){
    alert(1);
    };
    };
  • 例子2 弹出 1;

    1
    2
    3
    4
    5
    6
    alert fn1()();
    function fn1(){
    return function(){
    alert(1);
    }
    }
  • 例子3 弹出10

    1
    2
    3
    4
    5
    6
    alert fn1()(10); 
    function fn1(){
    return function(a){
    alert(a);
    }
    }
  • 例子4 弹出30

    1
    2
    3
    4
    5
    6
    alert fn1(20)(10); 
    function fn1(a){
    return function(b){
    alert(a + b);
    }
    }

JS基础知识

JS的基础知识ECMAScript

JS引入方式

  • 内部引用
1
<script>alert(1)</script>
  • 外部引用
1
<script src=""></script>

JS语法

  • 定义变量
  • 语句以分号结尾
  • 变量名以¥、字母、_开头,其他字符可以是数字,区分大小写
  • 注释方式
1
/*这是注释*/

基本调试

  • 审查元素,打开控制台
  • console.log();
  • alert();

数据类型

typeof可以用来判断数据类型

  • HTML标签类型:
    • block
    • inline-block
    • inline
    • table
  • JS中的数据类型:

    • 数字 Number(包括NaN)
    • 布尔型
    • 字符串
    • 对象(包括obj、[]、{}、null)
    • undefined
  • Null和undefined有什么区别:

    • null表示没有对象,明确此处不应该有值
    • 变量被声明了,但是没有赋值时,就==undefined
    • 调用函数时,应该提供的参数没有提供,该参数==undefined
    • 对象没有赋值的属性,该属性的值==undefined
    • 函数没有返回值,默认返回==undefined

基本语句

  • if语句
  • for语句
  • do-while语句
1
2
3
4
5
var i = 0; 
do{
i += 2;
}while(i < 10);
console.log(i);
  • while
1
2
3
4
5
var i = 0; 
while (i < 10) {
i += 2;
console.log(i);
}
  • for-in语句

    用于循环输出对象里的值,例如Json

  • break、continue

    用于循环语句中,当break时,跳出循环,结束循环。当continue时,跳出本次循环,继续下一次循环

  • switch

    判断语句,if else的简化版

1
2
3
4
5
6
7
8
9
10
switch(true){ 
case score >= 90:
console.log('优');
break;
case score >= 70:
console.log('良');
break;
default:
console.log('差');
}
  • 函数
    • 定义方式
    • 带参数的函数
    • 函数的调用
    • 函数的作用域

运算符

  • 递增递减 – ++

    1
    2
    3
    4
    5
    var a = 10;
    var c = ++a; //a自己加1,再赋值给c
    var d = a++; // a赋值给d, 再自己加1,
    var b = 'hello';
    b += 'kevin'; // b = b + 'kevin'; b的值是hello kevin
  • 非与或 ! && ||

  • 乘法* 除法/ 求余%
    • 对于乘除减 非number先转化为number,如果转化失败,则返回NaN
  • 加法 +
    • 对于加,任何与字符串相加会转化成字符串
1
2
3
4
5
6
7
8
9
10
11
12
13
var a = 10,
b = "2",
c = true,
d = false,
e = null,
f = 'hello';
console.log( a + a ); //20
console.log( a + b ); //102
console.log( a + c ); //11
console.log( d + c ); //1
console.log( e + f ); //nullhello
console.log( a + f ); //10hello
console.log( f + (a + a) ); //hello20
  • 关系><

    • number 直接比较
    • string 直接比较首字母的asc码
    • 如果一个是number,把另外一个转化为number 比较
  • 三目运算

    • var max=(num1>num2)?num1:num2

字符串操作

  • 长度.length
  • 截取 subStr/subString/slice

    1
    2
    3
    4
    var str = "hello world";
    var sub1 = str.subStr(1, 3); // 第一个是开始位置, 第二个是长度 ell
    var sub2 = str.subString(1, 3); // 第一个是开始位置,第二个是结束位置,长度为第二个-第一个 el
    var sub3 = str.slice(1, 3); // 同上 允许负参
  • 查找 search/replace/match

    1
    2
    3
    4
    var str = "hello my world";
    var s1 = str.search('my'); //6 找不到为-1
    var s2 = str.replace('my', 'your'); //
    var s3 = str.match('my'); //返回匹配的数组
  • 大小写 toLowerCase()/toUpperCase()

    1
    2
    3
    var str = "Hello";
    str.toUpperCase();
    str.toLowerCase();
  • 找到某个字符第一次出现的位置,返回asc码 charAt()/charCodeAt()

数组操作

JSON操作

JQ节点操作

  • prev()
  • next()
  • prevAll()
  • nextAll()
  • siblings()

例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>节点的选择</title>
<script src="jquery-1.11.1.js"></script>
<script>
$(function(){
//$('span').next().css('background', 'red'); //p, h1
//$('span').prev().css('background', 'red'); //div, p
//$('p').nextAll().css('background', 'red'); //p标签下面的所有标签
//$('p').prevAll().css('background', 'red'); //p标签之前的所有标签
//$('p').siblings().css('background', 'red'); //找p标签所有的兄弟节点
//参数筛选功能(可以有参数)
//$('p').siblings('h2').css('background', 'red'); //找p标签所有的兄弟节点中的h2节点
//$('span').next('h1').css('background', 'red');
//$('span').next('h2').css('background', 'red'); //两个span的下一个都没有h2的,所以就没有
});
</script>

</head>
<body>
<div>div</div>
<span>span</span>
<p>p</p>
<span>span</span>
<h1>h1</h1>
<h2>h2</h2>
<h2>h2</h2>
<h3>h3</h3>
<em>em</em>
</body>
</html>

  • first()
  • last()
  • slice() //截取一部分元素, 起始-结束(不包括结束位置)
  • children()
  • find() //可以找子孙节点,必须得有参数

例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>节点的选择</title>
<script src="jquery-1.11.1.js"></script>
<script>
// eq(0) == first();
$(function()
{
// $('li').first().css('background', 'red'); //选择第一个
// $('li').last().css('background', 'red'); //选择最后一个
// $('li').slice(1, 3).css('background', 'red'); //得到的其实是从eq(1)开始到eq(2)结束
// $('li').slice(1).css('background', 'red'); //如果在slice里面只写起始位置不写结束位置,那么就是从起始位置开始,一直到最后一个元素
//$('ul').children().css('background', 'red'); //找到ul的所有子节点,但是孙子节点是找不到的
// $('ul').children('div').css('background', 'red'); //children()可以过滤筛选
// $('ul').find('p').css('background', 'red'); //可以用findul之下的所有节点中匹配的节点,find查找的范围比children更加广泛
})
</script>

</head>
<body>
<ul>
<li>
1111
<p>pppp</p>
</li>
<li>1111</li>
<li>1111</li>
<li>1111</li>
<div>div</div>
</ul>
</body>
</html>

  • parent()
  • parents()
  • closest() ★★★★★ //找当前元素的最近的满足条件的祖先节点(只能找到一个元素,也包括自身)

JS判断数据类型

判断是否数字类型

1
2
var num = 9; 
typeof num ==='number'

判断是否字符串

1
2
var str ='hello world'; 
typeof str ==='string'

判断是否布尔

1
2
var flag =true; 
typeof flag ==='boolean';

判断是否是对象

  • 是否是函数

    1
    2
    function sum(){}; 
    typeof sum ==="function"
  • 是否是数组

    1
    2
    var arr=[]; 
    alert(arr instanceof Array)
  • 是否是JSON

    1
    2
    obj = {a:1,b:2} 
    alert(typeof obj ==='object' && obj+'' ==='[object Object]')