-
两个程序员,一个技术精湛,思维严谨,认真负责,Bug极少,至今单身;
一个技术一般,吊儿郎当,Bug一堆,经常被测试MM叫到她旁边,接受批评, 后来成了她男朋友。。。 -
宝宝数学很好,2岁就可以从1数到10了。后来,我告诉他0比1还小。
今天吃饺子,我说:“宝宝,你数数你想吃几个饺子?”
“0,1,2,3。”一边说着一边拿起一个饺子,“这是第0个。”
老婆怒吼:“下一代还是做程序员的命!” -
我是个程序猿,一天我坐在路边一边喝水一边苦苦检查bug。这时一个乞丐在我边上坐下了,开始要饭,我觉得可怜,就给了他1块钱,然后接着调试程序。他可能生意不好,就无聊的看看我在干什么,然后过了一会,他幽幽的说,这里少了个分号。分号。。分号。。。
JS
JS中的三种弹出窗 *
1. 提示窗 ***
alert("要提示的内容");
2. 信息问询框
confirm("要提示的内容");
存在确定和取消按钮, 当点击确定时返回true, 点击取消或关闭弹出窗时返回false.
3. 提示输入框
prompt("要提示的内容");
存在确定和取消按钮, 点击确定时返回数据的内容, 点击取消时 返回null;
定义变量 ***
Java: 一门强类型语言
数据类型 变量名 = 初始化值;
int a = 10;
JS : 一门弱类型语言
var 变量名 = 初始化值;
var a = 10;
a = "哈哈哈";
a = true;
if(a){
alert("哈哈哈");
}
获取变量类型
typeof(变量) : 返回一个string值, 值的内容是类型的名称, 比如: string,boolean,number等.
数据类型 *
- 基本数据类型
- number : 数值型
- boolean : 布尔类型
- string : 字符串类型
-
复杂数据类型
- Array : 数组
- Object : 对象 -
特殊数据类型
- null : 空
- undefined: 未定义
严格相等符号
在JS中 使用 == 比较时, 比较的仅仅是字面值, 与数据类型无关.
如果需要在比较值的同时,又比较数据类型. 需要使用严格相等符号 : === , 或 严格不相等符号: !==
var a = 10;
var b = 10;
alert(ab);//true
a = "10";
alert(ab);//true
var a = 10;
var b = 10;
alert(a=b);//true
a = "10";
alert(a=b);//false
数组 Array
格式:
var 数组名 = [元素1,元素2...,元素n];
var 数组名 = new Array();
var 数组名 = new Array(初始长度);
var 数组名 = new Array(元素1,元素2...,元素n);
注意:
1. JS中的数组长度可以任意改变.
2. 数组中的每一个下标就像是一个变量, 可以存储任意类型的数据.
案例:
var arr1 = new Array(10);
arr1[100] = "张三";
alert(arr1[100]);
alert(arr1.length);
arr1[1000] = "李四";
alert(arr1.length);
一组数据来排序
两两相比小靠前
外层循环length-1
内层循环length-i-1
Math 算数对象
- 随机数
Math.random() ; 返回一个0-1的浮点型数字
- 四舍五入
Math.round(数字); 返回四舍五入为整数的数据
计算0-10000的随机数
Math.round(Math.random()*10000)
Number 数值对象
- 构造方法
var 变量 = new Number(字符串);
- 保留指定小数点位数, 进行四舍五入:
number数据.toFixed(要保留的小数点位数);
案例:
var num = Math.random()*10000;
alert(num);
alert(num.toFixed(2));
正则表达式
使用步骤:
1. 创建一个正则表达式对象
var 对象名 = /正则表达式/g;
2. 使用正则表达式对象 调用test函数 验证一个数据是否匹配.
对象.test(数据) : 返回true或false , true表示匹配.
案例:
//1. 接收用户输入手机号码
var phone = prompt("恭喜你,获得三等奖:苹果三件套*1 ,现金10万.请输入手机号码领取:");
if(phone != null){
//2. 创建验证手机号码的正则表达式
var obj = /^1(3[0-9]|4[67]|5[012356789]|6[67]|7[012356789]|8[0-9]|9[98])[0-9]{8}$/g;
var flag = obj.test(phone);
if(flag){
alert("恭喜你, 被骗了. 哈哈哈哈哈");
}else{
alert("你太机智了. 手机号码输入错误.");
}
}else{
alert("钱都不要, 你真刚烈.");
}
参考地址:
https://itdage.cn/27/day10/笔记.html
Date 日期类
创建对象:
格式一: var date = new Date();
格式二: var date = new Date(年,月,日,[时],[分],[秒],[毫秒]);
常用方法:
0. 获取时间戳
getTime();
1. 设置和获取年
setFullYear(年)/getFullYear();
2. 设置和获取月
setMonth(月)/getMonth();//0-11的月份
3. 设置和获取日
setDate(日)/getDate();
4. 设置和获取时
setHours(时)/getHours();
5. 设置和获取分
setMinutes(分)/getMinutes();
6. 设置和获取秒
setSeconds(秒)/getSeconds();
7. 设置和获取毫秒
setMilliseconds(豪秒)/getMilliseconds();
函数 function *****
定义函数的格式: function 函数名称(形式参数列表){
}
案例:
定义一个函数, 拥有两个形式参数, 用于计算两个参数的和,并返回
function sum(x,y){
return x+y;
}
练习:
定义一个函数 , 四个形式参数(q,w,e,r), 比较大小, 将较大的值返回.
function max(q,w,e,r){
return ((q>w?q:w)>e?(q>w?q:w):e)>r?((q>w?q:w)>e?(q>w?q:w):e):r;
}
var num = max(200,300,400,100);
alert(num);
Function 类型
function sum(x,y){ return x+y; }
var sum = 100; --------------------------- var sum = 100;//创建number类型变量 function heihei(){ alert("嘿嘿嘿"); }//创建Function类型变量 sum = heihei; sum();
匿名函数 了解
function(形式参数){
};
案例:
//回调函数 //观察者设计模式
//访问服务器 (子线程) (单线程异步交互机制)
function x1(f1){
//服务器回复内容后 , 调用f1
f1();
}
//调用x1访问服务器
x1(function(){
//服务器回复后. 这里代码执行
alert("哈哈哈");
});
String 的内容 为什么创建后, 无法改变?
底层 char unicode A = 65
内存 char[]
表现 常量池
Person name age
String a = “heiheihei”;//char[] chars = {‘h’,‘e’,‘i’,‘h’,‘e’,‘i’,‘h’,‘e’,‘i’};
a = “hahahahahaha”//char[] cahrs = {‘h’,‘a’,‘h’,‘a’,‘h’,‘a’,‘h’,‘a’,‘h’,‘a’,‘h’,‘a’};
堆 栈 方法区 常量池 (享元设计模式)(一级缓存) (二级缓存)(三级缓存)(四级缓存)