JS的: Cannot read property 'value' of undefined

部分html代码

 <!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>随机数据生成</title>
    <link rel="stylesheet" type="text/css" href="css/index.css">
  <script type="text/javascript" src="js/index.js"></script>
</head>
<body>

<textarea rows="1" cols="1"  name="date" class="texta" value=""></textarea>

<script type="text/javascript">
var texta = document.getElementsByTagName("textarea")[0];

start.onclick = function(){
  IntegerDate(peoVal,exceVal,qualVal,unqualVal,texta);
}

外部JS代码

 function IntegerDate(sNum,exce,good,qual,unqual,elements){//注释:总人数,优秀,良好,合格,不合格,要添加的元素
        for(var i = 0;i < sNum;i++){
            if(exce){
                elements.getAttribute("value")  += randomInt(4800,5040) + '\n';
            }
            if(good){
                elements.getAttribute("value") += randomInt(4300,4550) + '\n';
            }
            if(qual){
                elements.getAttribute("value") += randomInt(3100,4180) + '\n';
            }
            if(unqual){
                elements.getAttribute("value") += randomInt(2300,2940) + '\n';
            }
        }
}

错误图片提示

图片说明

6个回答

你调用这个的地方,代码贴出来看看

错误源代码链接:https://pan.baidu.com/s/1jIu1i2y

忘了说明一件事:被调用的函数是在start.onclick事件中的

function IntegerDate(sNum,exce,good,qual,unqual,elements){这里定义了6个参数

start.onclick = function(){
  IntegerDate(peoVal,exceVal,qualVal,unqualVal,texta);//这里只传了5个参数
}

js调用函数,参数是按顺序接收的!函数有6个参数,调用传了5个,默认对应的是前5个,最后elements应该是undefined

1、你贴的代码跟截图上面的不一样
2、function IntegerDate(sNum,exce,good,qual,unqual,elements){这里定义了6个参数

start.onclick = function(){
IntegerDate(peoVal,exceVal,qualVal,unqualVal,texta);//这里只传了5个参数
}
这个也是有问题的

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
js出现Cannot read property 'length' of undefined
js代码: ``` $(document).ready(function(){ var url = "teachers/getSchoolList.do"; $.ajax({ type: "POST", url: url, //async : false, dataType:"text", success : function(data) { alert(data); alert("8888"); var str="<dl>"; console.log(data); $.each(data.list,function (i, value) { str=str+"<dd data-name='"+value[i].SCHOOLNAME+"'>"+value[i].SCHOOLNAME+"</dd>"; }); str = str+"</dl>"; $(".erjimenu").html(str); }, error:function(data){ console.log(data); $("#form-notice").html('获取学校出错,请重新获取'); } }); }) 后台代码: @RequestMapping(value="/getSchoolList") public Object getSchoolList()throws Exception{ ModelAndView mv = this.getModelAndView(); PageData pd = new PageData(); pd = this.getPageData(); Map<String, Object> map = new HashMap<String, Object>(); List<PageData> schoolList = this.schoolService.listAll(new PageData()); map.put("list", schoolList); return AppUtil.returnObject(pd, map); } ```
微信小程序报错:thirdScriptError 求解决方案。
#错误提示:thirdScriptError: Cannot read property 'songlist' of undefined;at api request success callback function TypeError: Cannot read property 'songlist' of undefined #源代码: ``` // pages/list/list.js var config = require('../../config.js'); var formatSeconds = function(value) { var time = parseFloat(value); var m = Math.floor(time / 60); var s = time - m * 60; return [m, s].map(formatNumber).join(':'); function FormatNumber(n) { n = n.toString() return n[1] ? n : '0' + n } } Page({ data: { board: '', songlist: [], loading: false, }, onLoad: function(options) { var self = this; var topid = options.type; this.setData({ loading: true }) wx: wx.request({ url: config.config.hotUrl, data: { topid: topid }, success: function(e) { if (e.statusCode == 200) { var songlist = e.data.showapi_res_body_pagebean.songlist; for (var i = 0; i < songlist.length; i++) { songlist[i].seconds = formatSeconds(songlist[i].seconds); } self.setData({ board: e.data.showapi_res_body_pagebean.songlist[0].albumpic_big, songlist: songlist, loading: false }); wx.setStorageSync('songlist', songlist); } } }); } }) ```
easyui treegrid 获取父节点,运行到js报错?代码下
<th data-options="field:'parentSubjectName',width:100,editor:'text',formatter:function(value,row,index){ console.log(row.parentSubjectCode); var lv = $('#tg').treegrid('getParent', row.parentSubjectCode); console.log(lv); }">上级科目</th 报错: VM494 jquery.easyui.min.js:2157 Uncaught TypeError: Cannot read property 'data' of undefined(…) 这个js怎么报错呢?![图片说明](https://img-ask.csdn.net/upload/201612/14/1481678059_233386.png) 怎么回事呢,来大神帮忙啊
JS split报错问题,使用了Echart
{ title: '天数', field: 'ChiD', width: 120, formatter: function (value, row, index) { var CD1 = ""; CD1 = value; var CMingX = []; CMingX = CD1.split(","); value = ""; for(var c=0;c<CMingX.length-1;c++) { value += CMingX[c] + "\n"; } return value; } value =" 总计:8 天,2015-07-01,2015-07-02,2015-07-03,2015-07-06,2015-07-07,2015-07-08,2015-07-09,2015-07-10," 目的 = 总计:8 天 2015-07-01 2015-07-02 2015-07-03 2015-07-06 2015-07-07 2015-07-08 2015-07-09 2015-07-10 现在报错:Uncaught TypeError: Cannot read property 'split' of undefined
Vue的报错,一个仿造百度的下拉菜单
``` <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>下拉菜单</title> <script src='http://cdn.jsdelivr.net/vue/1.0.7/vue.min.js'></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/vue-resource/1.0.3/vue-resource.js"></script> <style type="text/css"> .gray { background-color: #ccc; color: gold; } </style> </head> <body> <div id="box"> <input type="text" @keyup='get()' v-model='t1' /> <ul > <li v-for='value in myData'>{{value}}</li> </ul> <p v-show='myData.length === 0'>暂无数据。。。</p> </div> <!--https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=a&json=1&p=3&sid=&req=2&csor=1&cb=jQuery1102005335343900131995_1480232231511&_=1480232231514--> <script> new Vue({ el:'body', data:{ myData:[], t1:'' }, methods:{ get:function(){ this.$http.jsonp('https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su' , { wd:this.t1, },{ json:'cb' }).then(function(res){ this.myData = res.data.s; } , function(res){ console.log(res.status); }); } } }); </script> </body> </html> ``` 错误是这样的: su?callback=_jsonpx6o0z3kbkvsubwkyvd0lik9:1 Uncaught TypeError: Cannot read property 'sug' of undefined(anonymous function) @ su?callback=_jsonpx6o0z3kbkvsubwkyvd0lik9:1 vue-resource.js:1276 Uncaught (in promise) SyntaxError: Unexpected token u in JSON at position 0(…)
function selflog_show(id)为什么就是调用不了~~
``` 代码如下: <script type="text/javascript"> function sub(){ var num=parseInt(document.getElementById("purchasenum").value); if(num>1){ document.getElementById("purchasenum").value=--num; } } function add(){ var num=parseInt(document.getElementById("purchasenum").value); if(num<100){ document.getElementById("purchasenum").value=++num; } } function selflog_show(id){ var num=document.getElementById("purchasenum").value; J.dialog.get({id:'haoyue_creat',title:'购物成功',width: 600,height:400, link:'<%=path%>/servlet/CartServlet?id='+id+'&num='+num+'CartAction=add',cover:true}); } </script> body中的代码: <h2><%=i.getName()%></h2> <p>商品ID=<%=i.getId()%></p> <span> <span>¥<%=i.getPrice()%></span><br><br><br> <!-- <label>数量:</label> --> 数量: <span id="sub" onclick="sub();">-</span> <span id="add" onclick="add();">+</span> <input type="text" name="purchasenum" id="purchasenum" value="1" /> <a href="javaScript:selflog_show(<%=i.getId()%>)"> <button type="button" class="btn btn-fefault cart"> <i class="fa fa-shopping-cart"></i> 加入购物车 </button> </a> <!-- <button type="button" class="btn btn-fefault cart"> <i class="fa fa-shopping-cart"></i> 加入购物车 </button> --> </span> <p><b>库存:</b> <%=i.getStock()%></p> <p><b>产地:</b> <%=i.getCity()%> </p> <%} %> ``` 出现的错误如下: 一旦点击“加入购物车” 出现: Goods_Details.jsp?id=1:58 Uncaught ReferenceError: J is not defined at selflog_show (Goods_Details.jsp?id=1:58) at <anonymous>:1:1 bootstrap.min.js:7 Uncaught TypeError: Cannot read property 'offsetWidth' of undefined at b.slide (bootstrap.min.js:7) at b.next (bootstrap.min.js:7) at i (jquery.js:4)  ​ 拜托各位啦
Ext itemeselect组件如何获取右边的值
function comboData(jsonStr){ //var obj = jsonStr.parseJSON(); //alert(obj.abbr); return JSON.parse(jsonStr); } var ds; Ext.onReady(function() { ds=Ext.create('Ext.data.Store',{ fields : [ { name : 'name', type : 'int' }, ], proxy:{ type:'ajax', url:'${contextPath}/getNeedLoginWebGroup.${actionExtension}', reader:{ type:'json', rootProperty:'rows', } }, }); var isForm = Ext.widget('form', { id:'isform', width: 700, bodyPadding: 10, height: 400, renderTo: 'itemselector', layout: 'fit', tbar: [ { xtype: 'combo', id:'wlid',fieldLabel:'白标',dock:'top', labelAlign:'right', store:Ext.create('Ext.data.Store',{ fields:['name','abbr'], data:comboData('${cmyJsonStr}') }), displayField:'name', valueField:'abbr', listeners:{ afterrender:function(com){ com.select(""); }, change:function(){ var container=Ext.getCmp('groupName'); var groupNameURL = "${contextPath}/listGroupNamesWebGroup.${actionExtension}"; container.removeAll(true); $.post(groupNameURL,{'model.whiteid':Ext.getCmp('wlid').value},function(datas){ container.add({ xtype:'combo', id:'groupNames', matchFieldWidth:false, editable:false, store:Ext.create('Ext.data.Store',{ fields:['name','abbr'], data:comboData(datas) }), displayField:'name', valueField:'abbr', listeners:{ change:function(){ var i=isForm.getForm().findField("itemselector"); i.reset.call(i); var param=new Object(); var name='model.groupName'; var value=Ext.getCmp('groupNames').value; param[name]=value; ds.getProxy().setExtraParams(param); ds.load(); } } }); }) } } }, {xtype:'fieldcontainer',id:'groupName',dock:'top',fieldLabel:'网站组', labelAlign:'right', layout:{ type:'hbox', align:'stretch', } }, ], items:[{ xtype: 'itemselector', name: 'itemselector', id: 'itemselector-field', anchor: '100%', html:"", store: ds, displayField: 'name', valueField: 'name', fromTitle: '可用账号', toTitle: '已选账号' }], //注释的部分报错:Uncaught TypeError: Cannot read property 'model' of undefined /* items:[{ xtype: 'itemselector', id : '_left', //imagePath: '../ux/images/',//左右移动的图片 fromTitle: '可用账号', toTitle: '已选账号', multiselects: [{ //定义左边数据 store: ds, displayField: 'name', valueField: 'name' },{ //定义右边为空数据 id:'_right', store: [] }], }], */ }); }); ``` ```
ECharts两组数据,数据量不同,当鼠标移动只有一组数据的地方的时候会报错
如题,我需要用Echarts做个折线图,里面有两组数据,但是其中一组数据的数据量较少,到了后面会只有一剩一组数据,当鼠标一上去的时候就会报错 以下是代码 js ``` $(function(){ $("#try").click(getData); }) function getData(){ var name = $("#try").val(); set_dates(name); set_prices1(name); set_prices2("诚德"); show_line(); } function set_dates(name){ $.ajax({ "url":path+"/stock/dates.do", "type":"post", "dataType":"json", "data":{"name":name}, "success":function(result){ if(result.state==0){ var dates = result.data; addCookie("dates",dates,2); } }, "error":function(){ console.log("获取失败"); } }) } function set_prices1(name){ $.ajax({ "url":path+"/stock/prices.do", "type":"post", "dataType":"json", "data":{"name":name}, "success":function(result){ if(result.state==0){ var prices = result.data; console.log(prices); addCookie("prices1",prices,2); } }, "error":function(){ console.log("获取失败"); } }) } function set_prices2(name){ $.ajax({ "url":path+"/stock/prices.do", "type":"post", "dataType":"json", "data":{"name":name}, "success":function(result){ if(result.state==0){ var prices = result.data; console.log(prices); addCookie("prices2",prices,2); } }, "error":function(){ console.log("获取失败"); } }) } ``` jsp ``` <%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <html> <head> <script type="text/javascript" src="echarts/jquery.min.js"></script> <script type="text/javascript" src="echarts/echarts.js"></script> <script type="text/javascript" src="scripts/for.js"></script> <script type="text/javascript" src="scripts/cookie_util.js"></script> <script type="text/javascript" src="scripts/path.js"></script> </head> <body style="font-size: 30px;"> <!-- 为ECharts准备一个具备大小(宽高)的DOM --> <div id="main" style="width: 600px; height: 400px"></div> <input id="try" type="button" value="宏旺"> <script type="text/javascript"> //基于准备好的dom,初始化echarts实例 var myChart = echarts.init(document.getElementById("main")); //指定图表的配置项和数据 function show_line(){ var dates = getCookie("dates").split(","); var data2 = getCookie("prices1").split(","); var data1 = getCookie("prices2").split(",") console.log("日期集合为:"+dates); console.log("数字集合3为:"+data2); console.log("数字集合2为:"+data1); option = { title : { text : '折线对比图示例', left : 'center' }, tooltip : { trigger : 'axis', formatter:function(params)//数据格式 { var relVal = params[0].name+"<br/>"; relVal += params[0].seriesName+ ' : ' + params[0].value+"<br/>"; relVal +=params[1].seriesName+ ' : ' +params[1].value+"<br/>"; return relVal; } }, legend : { left : 'left', textStyle : { color : '#fff' }, data : [ '第2个数据', '第1个数据' ] }, grid : { left : '10%', right : '10%', bottom : '15%' }, xAxis : { type : 'category', name : 'x', axisLine : { onZero : false }, splitLine : { show : false }, splitLine : { show : false }, data : dates }, grid : { left : '3%', right : '4%', bottom : '3%', containLabel : true }, yAxis : { type : 'log', name : 'y', min:7000, max:15000, scale : true, splitArea : { show : true } }, dataZoom : [ { textStyle : { color : '#8392A5' }, handleIcon : 'M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4v1.3h1.3v-1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7V23h6.6V24.4z M13.3,19.6H6.7v-1.4h6.6V19.6z', handleSize : '80%', dataBackground : { areaStyle : { color : '#8392A5' }, lineStyle : { opacity : 0.8, color : '#8392A5' } }, handleStyle : { color : '#fff', shadowBlur : 3, shadowColor : 'rgba(0, 0, 0, 0.6)', shadowOffsetX : 2, shadowOffsetY : 2 } }, { type : 'inside' } ], series : [ { name : '第2个数据', type : 'line', data : data2, }, { name : '第1个数据', type : 'line', data : data1, }, ] }; //使用刚制定的配置项和数据显示图表 myChart.setOption(option); } </script> </body> </html> ``` 报错内容 ``` echartsDemo.jsp:42 Uncaught TypeError: Cannot read property 'seriesName' of undefined at formatter (echartsDemo.jsp:42) at ExtendedClass._showTooltipContent (echarts.js:58535) at ExtendedClass.<anonymous> (echarts.js:58415) at echarts.js:3357 at ExtendedClass._showOrMove (echarts.js:58329) at ExtendedClass._showAxisTooltip (echarts.js:58404) at ExtendedClass._tryShow (echarts.js:58301) at ExtendedClass.manuallyShowTip (echarts.js:58187) at callView (echarts.js:952) at ECharts.<anonymous> (echarts.js:946) ``` 第一次发表这种提问,语言组织能力有限,如果有大神看懂了,麻烦指导一下,谢谢
安装了heroku的CLI工具包后,在mac终端登录时出现错误
$ heroku login heroku: Enter your login credentials Email: TypeError: Cannot read property 'body' of undefined at new HerokuAPIError (/usr/local/Cellar/heroku/7.0.86/libexec/node_modules/@heroku-cli/command/lib/api_client.js:12:33) at Login.login (/usr/local/Cellar/heroku/7.0.86/libexec/node_modules/@heroku-cli/command/lib/login.js:78:19)# New Document 本人初学ruby on rails,这些错误代码是安装的工具自带的,而且是最新版,重新安装过了也没用,https://devcenter.heroku.com/articles/heroku-cli 安装的官网在这里,按照步骤操作的,为什么会出现这个问题呢,希望大神们帮帮我!js文件代码如下。 # 第一个: "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const errors_1 = require("@oclif/errors"); const netrc_parser_1 = tslib_1.__importDefault(require("netrc-parser")); const url = tslib_1.__importStar(require("url")); const deps_1 = tslib_1.__importDefault(require("./deps")); const login_1 = require("./login"); const vars_1 = require("./vars"); class HerokuAPIError extends errors_1.CLIError { constructor(httpError) { let options = httpError.body; if (!options || !options.message) throw httpError; let info = []; if (options.id) info.push(`Error ID: ${options.id}`); if (options.app && options.app.name) info.push(`App: ${options.app.name}`); if (options.url) info.push(`See ${options.url} for more information.`); if (info.length) super([options.message, ''].concat(info).join('\n')); else super(options.message); this.http = httpError; this.body = options; } } exports.HerokuAPIError = HerokuAPIError; class APIClient { constructor(config, options = {}) { this.config = config; this.options = options; this._login = new login_1.Login(this.config, this); this.config = config; if (options.required === ‘undefined’) options.required = true; options.preauth = options.preauth !== false; this.options = options; let apiUrl = url.URL ? new url.URL(vars_1.vars.apiUrl) : url.parse(vars_1.vars.apiUrl); let envHeaders = JSON.parse(process.env.HEROKU_HEADERS || '{}'); this.preauthPromises = {}; let self = this; const opts = { host: apiUrl.host, headers: Object.assign({ accept: 'application/vnd.heroku+json; version=3', 'user-agent': `heroku-cli/${self.config.version} ${self.config.platform}` }, envHeaders), }; this.http = class APIHTTPClient extends deps_1.default.HTTP.HTTP.create(opts) { static async twoFactorRetry(err, url, opts = {}, retries = 3) { const app = err.body.app ? err.body.app.name : null; if (!app || !options.preauth) { opts.headers = opts.headers || {}; opts.headers['Heroku-Two-Factor-Code'] = await self.twoFactorPrompt(); return this.request(url, opts, retries); } else { // if multiple requests are run in parallel for the same app, we should // only preauth for the first so save the fact we already preauthed if (!self.preauthPromises[app]) { self.preauthPromises[app] = self.twoFactorPrompt().then((factor) => self.preauth(app, factor)); } await self.preauthPromises[app]; return this.request(url, opts, retries); } } static async request(url, opts = {}, retries = 3) { opts.headers = opts.headers || {}; if (!Object.keys(opts.headers).find(h => h.toLowerCase() === 'authorization')) { opts.headers.authorization = `Bearer ${self.auth}`; } retries--; try { return await super.request(url, opts); } catch (err) { if (!(err instanceof deps_1.default.HTTP.HTTPError)) throw err; if (retries > 0) { if (opts.retryAuth !== false && err.http.statusCode === 401 && err.body.id === 'unauthorized') { if (!self.authPromise) self.authPromise = self.login(); await self.authPromise; opts.headers.authorization = `Bearer ${self.auth}`; return this.request(url, opts, retries); } if (err.http.statusCode === 403 && err.body.id === 'two_factor') { return this.twoFactorRetry(err, url, opts, retries); } } throw new HerokuAPIError(err); } } }; } get twoFactorMutex() { if (!this._twoFactorMutex) { this._twoFactorMutex = new deps_1.default.Mutex(); } return this._twoFactorMutex; } get auth() { if (!this._auth) { if (process.env.HEROKU_API_TOKEN && !process.env.HEROKU_API_KEY) deps_1.default.cli.warn('HEROKU_API_TOKEN is set but you probably meant HEROKU_API_KEY'); this._auth = process.env.HEROKU_API_KEY; if (!this._auth) { deps_1.default.netrc.loadSync(); this._auth = deps_1.default.netrc.machines[vars_1.vars.apiHost] && deps_1.default.netrc.machines[vars_1.vars.apiHost].password; } } return this._auth; } set auth(token) { delete this.authPromise; this._auth = token; } twoFactorPrompt() { deps_1.default.yubikey.enable(); return this.twoFactorMutex.synchronize(async () => { try { let factor = await deps_1.default.cli.prompt('Two-factor code', { type: 'mask' }); deps_1.default.yubikey.disable(); return factor; } catch (err) { deps_1.default.yubikey.disable(); throw err; } }); } preauth(app, factor) { return this.put(`/apps/${app}/pre-authorizations`, { headers: { 'Heroku-Two-Factor-Code': factor }, }); } get(url, options = {}) { return this.http.get(url, options); } post(url, options = {}) { return this.http.post(url, options); } put(url, options = {}) { return this.http.put(url, options); } patch(url, options = {}) { return this.http.patch(url, options); } delete(url, options = {}) { return this.http.delete(url, options); } stream(url, options = {}) { return this.http.stream(url, options); } request(url, options = {}) { return this.http.request(url, options); } login(opts = {}) { return this._login.login(opts); } async logout() { try { await this._login.logout(); } catch (err) { errors_1.warn(err); } delete netrc_parser_1.default.machines['api.heroku.com']; delete netrc_parser_1.default.machines['git.heroku.com']; await netrc_parser_1.default.save(); } get defaults() { return this.http.defaults; } } exports.APIClient = APIClient; # 第二个: "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const color_1 = tslib_1.__importDefault(require("@heroku-cli/color")); const cli_ux_1 = tslib_1.__importDefault(require("cli-ux")); const fs = tslib_1.__importStar(require("fs-extra")); const http_call_1 = tslib_1.__importDefault(require("http-call")); const netrc_parser_1 = tslib_1.__importDefault(require("netrc-parser")); const opn = require("opn"); const os_1 = require("os"); const path = tslib_1.__importStar(require("path")); const api_client_1 = require("./api_client"); const vars_1 = require("./vars"); const debug = require('debug')('heroku-cli-command'); const headers = (token) => ({ headers: { accept: 'application/vnd.heroku+json; version=3', authorization: `Bearer ${token}` } }); class Login { constructor(config, heroku) { this.config = config; this.heroku = heroku; this.loginHost = process.env.HEROKU_LOGIN_HOST || 'https://cli-login.heroku.com'; } async login(opts = {}) { await this.loadSettings(); let loggedIn = false; try { // timeout after 10 minutes setTimeout(() => { if (!loggedIn) cli_ux_1.default.error('timed out'); }, 1000 * 60 * 10).unref(); if (process.env.HEROKU_API_KEY) cli_ux_1.default.error('Cannot log in with HEROKU_API_KEY set'); await netrc_parser_1.default.load(); const previousEntry = netrc_parser_1.default.machines['api.heroku.com']; let input = opts.method; const defaultMethod = this.settings.method || 'interactive'; if (!input) { if (opts.expiresIn) { // can't use browser with --expires-in input = 'interactive'; } else if (this.enableBrowserLogin()) { input = await cli_ux_1.default.prompt(`heroku: Login with [${color_1.default.green('b')}]rowser, [${color_1.default.green('i')}]nteractive, or [${color_1.default.green('s')}]so (enterprise-only)`, { default: defaultMethod }); } else { input = defaultMethod || 'interactive'; } } try { if (previousEntry && previousEntry.password) await this.logout(previousEntry.password); } catch (err) { cli_ux_1.default.warn(err); } let auth; delete this.settings.method; switch (input) { case 'b': case 'browser': auth = await this.browser(); break; case 'i': case 'interactive': auth = await this.interactive(previousEntry && previousEntry.login, opts.expiresIn); break; case 's': case 'sso': auth = await this.sso(); break; default: return this.login(opts); } await this.saveToken(auth); await this.saveSettings(); } catch (err) { throw new api_client_1.HerokuAPIError(err); } finally { loggedIn = true; } } async logout(token = this.heroku.auth) { if (!token) return debug('no credentials to logout'); const requests = []; // for SSO logins we delete the session since those do not show up in // authorizations because they are created a trusted client requests.push(http_call_1.default.delete(`${vars_1.vars.apiUrl}/oauth/sessions/~`, headers(token)) .catch(err => { if (!err.http) throw err; if (err.http.statusCode === 404 && err.http.body && err.http.body.id === 'not_found' && err.http.body.resource === 'session') { return; } if (err.http.statusCode === 401 && err.http.body && err.http.body.id === 'unauthorized') { return; } throw err; })); // grab all the authorizations so that we can delete the token they are // using in the CLI. we have to do this rather than delete ~ because // the ~ is the API Key, not the authorization that is currently requesting requests.push(http_call_1.default.get(`${vars_1.vars.apiUrl}/oauth/authorizations`, headers(token)) .then(async ({ body: authorizations }) => { // grab the default authorization because that is the token shown in the // dashboard as API Key and they may be using it for something else and we // would unwittingly break an integration that they are depending on const d = await this.defaultToken(); if (d === token) return; return Promise.all(authorizations .filter(a => a.access_token && a.access_token.token === this.heroku.auth) .map(a => http_call_1.default.delete(`${vars_1.vars.apiUrl}/oauth/authorizations/${a.id}`, headers(token)))); }) .catch(err => { if (!err.http) throw err; if (err.http.statusCode === 401 && err.http.body && err.http.body.id === 'unauthorized') { return []; } throw err; })); await Promise.all(requests); } async browser() { const { body: urls } = await http_call_1.default.post(`${this.loginHost}/auth`); // TODO: handle browser const url = `${this.loginHost}${urls.browser_url}`; debug(`opening browser to ${url}`); const cp = await opn(url, { wait: false }); cp.on('error', cli_ux_1.default.error); const showUrl = () => cli_ux_1.default.warn(`Cannot open browser. Go to ${color_1.default.greenBright(url)} to finish login or run ${color_1.default.cmd('heroku login --interactive')}\n`); if (process.env.HEROKU_TESTING_HEADLESS_LOGIN === '1') showUrl(); cp.on('close', code => { if (code !== 0) showUrl(); }); cli_ux_1.default.action.start('Waiting for login'); const { body: auth } = await http_call_1.default.get(`${this.loginHost}${urls.cli_url}`, { headers: { authorization: `Bearer ${urls.token}`, } }); if (auth.error) cli_ux_1.default.error(auth.error); this.heroku.auth = auth.access_token; cli_ux_1.default.action.start('Logging in'); const { body: account } = await http_call_1.default.get(`${vars_1.vars.apiUrl}/account`, headers(auth.access_token)); cli_ux_1.default.action.stop(); return { login: account.email, password: auth.access_token, }; } async interactive(login, expiresIn) { process.stderr.write('heroku: Enter your login credentials\n'); login = await cli_ux_1.default.prompt('Email', { default: login }); let password = await cli_ux_1.default.prompt('Password', { type: 'hide' }); let auth; try { auth = await this.createOAuthToken(login, password, { expiresIn }); } catch (err) { if (!err.body || err.body.id !== 'two_factor') throw err; let secondFactor = await cli_ux_1.default.prompt('Two-factor code', { type: 'mask' }); auth = await this.createOAuthToken(login, password, { expiresIn, secondFactor }); } this.heroku.auth = auth.password; return auth; } async createOAuthToken(username, password, opts = {}) { function basicAuth(username, password) { let auth = [username, password].join(':'); auth = Buffer.from(auth).toString('base64'); return `Basic ${auth}`; } let headers = { accept: 'application/vnd.heroku+json; version=3', authorization: basicAuth(username, password) }; if (opts.secondFactor) headers['Heroku-Two-Factor-Code'] = opts.secondFactor; const { body: auth } = await http_call_1.default.post(`${vars_1.vars.apiUrl}/oauth/authorizations`, { headers, body: { scope: ['global'], description: `Heroku CLI login from ${os_1.hostname()}`, expires_in: opts.expiresIn || 60 * 60 * 24 * 365 // 1 year } }); return { password: auth.access_token.token, login: auth.user.email }; } async saveToken(entry) { const hosts = [vars_1.vars.apiHost, vars_1.vars.httpGitHost]; hosts.forEach(host => { if (!netrc_parser_1.default.machines[host]) netrc_parser_1.default.machines[host] = {}; netrc_parser_1.default.machines[host].login = entry.login; netrc_parser_1.default.machines[host].password = entry.password; delete netrc_parser_1.default.machines[host].method; delete netrc_parser_1.default.machines[host].org; }); if (netrc_parser_1.default.machines._tokens) { netrc_parser_1.default.machines._tokens.forEach((token) => { if (hosts.includes(token.host)) { token.internalWhitespace = '\n '; } }); } await netrc_parser_1.default.save(); } async defaultToken() { try { const { body: authorization } = await http_call_1.default.get(`${vars_1.vars.apiUrl}/oauth/authorizations/~`, headers(this.heroku.auth)); return authorization.access_token && authorization.access_token.token; } catch (err) { if (!err.http) throw err; if (err.http.statusCode === 404 && err.http.body && err.http.body.id === 'not_found' && err.body.resource === 'authorization') return; if (err.http.statusCode === 401 && err.http.body && err.http.body.id === 'unauthorized') return; throw err; } } enableBrowserLogin() { if (!process.env.HEROKU_LOGIN_HOST) return false; if (this.config.name === '@heroku-cli/command') return true; return this.config.channel !== 'stable'; } async sso() { let url = process.env.SSO_URL; let org = process.env.HEROKU_ORGANIZATION || this.settings.org; if (!url) { if (org) { org = await cli_ux_1.default.prompt('Organization name', { default: org }); } else { org = await cli_ux_1.default.prompt('Organization name'); } url = `https://sso.heroku.com/saml/${encodeURIComponent(org)}/init?cli=true`; } cli_ux_1.default.action.start('Opening browser for login'); // TODO: handle browser debug(`opening browser to ${url}`); await opn(url, { wait: false }); const password = await cli_ux_1.default.prompt('Access token', { type: 'mask' }); cli_ux_1.default.action.start('Validating token'); this.heroku.auth = password; const { body: account } = await http_call_1.default.get(`${vars_1.vars.apiUrl}/account`, headers(password)); this.settings.method = 'sso'; this.settings.org = org; return { password, login: account.email }; } async loadSettings() { try { this.settings = await fs.readJSON(this.settingsPath); } catch (err) { if (err.code !== 'ENOENT') cli_ux_1.default.warn(err); else debug(err); this.settings = {}; } } async saveSettings() { try { if (Object.keys(this.settings).length === 0) { await fs.remove(this.settingsPath); } else { await fs.outputJSON(this.settingsPath, this.settings); } } catch (err) { cli_ux_1.default.warn(err); } } get settingsPath() { return path.join(this.config.dataDir, 'login.json'); } } exports.Login = Login;
130 个相见恨晚的超实用网站,一次性分享出来
相见恨晚的超实用网站 持续更新中。。。
我花了一夜用数据结构给女朋友写个H5走迷宫游戏
起因 又到深夜了,我按照以往在csdn和公众号写着数据结构!这占用了我大量的时间!我的超越妹妹严重缺乏陪伴而 怨气满满! 而女朋友时常埋怨,认为数据结构这么抽象难懂的东西没啥作用,常会问道:天天写这玩意,有啥作用。而我答道:能干事情多了,比如写个迷宫小游戏啥的! 当我码完字准备睡觉时:写不好别睡觉! 分析 如果用数据结构与算法造出东西来呢? ...
对计算机专业来说学历真的重要吗?
我本科学校是渣渣二本,研究生学校是985,现在毕业五年,校招笔试、面试,社招面试参加了两年了,就我个人的经历来说下这个问题。 这篇文章很长,但绝对是精华,相信我,读完以后,你会知道学历不好的解决方案,记得帮我点赞哦。 先说结论,无论赞不赞同,它本质就是这样:对于技术类工作而言,学历五年以内非常重要,但有办法弥补。五年以后,不重要。 目录: 张雪峰讲述的事实 我看到的事实 为什么会这样 ...
字节跳动视频编解码面经
三四月份投了字节跳动的实习(图形图像岗位),然后hr打电话过来问了一下会不会opengl,c++,shador,当时只会一点c++,其他两个都不会,也就直接被拒了。 七月初内推了字节跳动的提前批,因为内推没有具体的岗位,hr又打电话问要不要考虑一下图形图像岗,我说实习投过这个岗位不合适,不会opengl和shador,然后hr就说秋招更看重基础。我当时想着能进去就不错了,管他哪个岗呢,就同意了面试...
win10系统安装教程(U盘PE+UEFI安装)
一、准备工作 u盘,电脑一台,win10原版镜像(msdn官网) 二、下载wepe工具箱 极力推荐微pe(微pe官方下载) 下载64位的win10 pe,使用工具箱制作启动U盘打开软件, 选择安装到U盘(按照操作无需更改) 三、重启进入pe系统 1、关机后,将U盘插入电脑 2、按下电源后,按住F12进入启动项选择(技嘉主板是F12) 选择需要启...
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
Python——画一棵漂亮的樱花树(不同种樱花+玫瑰+圣诞树喔)
最近翻到一篇知乎,上面有不少用Python(大多是turtle库)绘制的树图,感觉很漂亮,我整理了一下,挑了一些我觉得不错的代码分享给大家(这些我都测试过,确实可以生成) one 樱花树 动态生成樱花 效果图(这个是动态的): 实现代码 import turtle as T import random import time # 画樱花的躯干(60,t) def Tree(branch, ...
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
将代码部署服务器,每日早上定时获取到天气数据,并发送到邮箱。 也可以说是一个小人工智障。 思路可以运用在不同地方,主要介绍的是思路。
致 Python 初学者
欢迎来到“Python进阶”专栏!来到这里的每一位同学,应该大致上学习了很多 Python 的基础知识,正在努力成长的过程中。在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫。我非常理解你们所面临的处境。我从2007年开始接触 python 这门编程语言,从2009年开始单一使用 python 应对所有的开发工作,直至今天。回顾自己的学习过程,也曾经遇到过无数的困难,也曾经迷茫过、困惑过。开办这个专栏,正是为了帮助像我当年一样困惑的 Python 初学者走出困境、快速成长。希望我的经验能真正帮到你
Ol4网格生成以及优化
概述 先描述一下大致场景:以0.05为单元格大小生成网格,并在地图上绘制,绘制的时候需要区分海陆。本文以此需求为契机,简单描述一下该需求的实现以及如何来优化。 效果 实现 优化前 var source = new ol.source.Vector({ features: [] }); var vector = new ol.layer.Vector({ source...
11月19日科技资讯|华为明日发布鸿蒙整体战略;京东宣告全面向技术转型;Kotlin 1.3.60 发布
「极客头条」—— 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧。扫描上方二维码进入 CSDN App 可以收听御姐萌妹 Style 的人工版音频哟。 一分钟速览新闻点! 6G 专家组成员:速率是 5G 的 10 至 100 倍,预计 2030 年商用 雷军:很多人多次劝我放弃WPS,能坚持下来并不是纯粹的商业决定 ...
C语言魔塔游戏
很早就很想写这个,今天终于写完了。 游戏截图: 编译环境: VS2017 游戏需要一些图片,如果有想要的或者对游戏有什么看法的可以加我的QQ 2985486630 讨论,如果暂时没有回应,可以在博客下方留言,到时候我会看到。 下面我来介绍一下游戏的主要功能和实现方式 首先是玩家的定义,使用结构体,这个名字是可以自己改变的 struct gamerole { char n...
iOS Bug 太多,苹果终于坐不住了!
开源的 Android 和闭源的 iOS,作为用户的你,更偏向哪一个呢? 整理 | 屠敏 出品 | CSDN(ID:CSDNnews) 毋庸置疑,当前移动设备操作系统市场中,Android 和 iOS 作为两大阵营,在相互竞争的同时不断演进。不过一直以来,开源的 Android 吸引了无数的手机厂商涌入其中,为其生态带来了百花齐放的盛景,但和神秘且闭源的 iOS 系统相比,不少网友...
Python语言高频重点汇总
Python语言高频重点汇总 GitHub面试宝典仓库 回到首页 目录: Python语言高频重点汇总 目录: 1. 函数-传参 2. 元类 3. @staticmethod和@classmethod两个装饰器 4. 类属性和实例属性 5. Python的自省 6. 列表、集合、字典推导式 7. Python中单下划线和双下划线 8. 格式化字符串中的%和format 9. 迭代器和生成器 10...
究竟你适不适合买Mac?
我清晰的记得,刚买的macbook pro回到家,开机后第一件事情,就是上了淘宝网,花了500元钱,找了一个上门维修电脑的师傅,上门给我装了一个windows系统。。。。。。 表砍我。。。 当时买mac的初衷,只是想要个固态硬盘的笔记本,用来运行一些复杂的扑克软件。而看了当时所有的SSD笔记本后,最终决定,还是买个好(xiong)看(da)的。 已经有好几个朋友问我mba怎么样了,所以今天尽量客观...
Python爬虫爬取淘宝,京东商品信息
小编是一个理科生,不善长说一些废话。简单介绍下原理然后直接上代码。 使用的工具(Python+pycharm2019.3+selenium+xpath+chromedriver)其中要使用pycharm也可以私聊我selenium是一个框架可以通过pip下载 pip installselenium -ihttps://pypi.tuna.tsinghua.edu.cn/simple/ ...
程序员写了一个新手都写不出的低级bug,被骂惨了。
这种新手都不会范的错,居然被一个工作好几年的小伙子写出来,差点被当场开除了。
Java工作4年来应聘要16K最后没要,细节如下。。。
前奏: 今天2B哥和大家分享一位前几天面试的一位应聘者,工作4年26岁,统招本科。 以下就是他的简历和面试情况。 基本情况: 专业技能: 1、&nbsp;熟悉Sping了解SpringMVC、SpringBoot、Mybatis等框架、了解SpringCloud微服务 2、&nbsp;熟悉常用项目管理工具:SVN、GIT、MAVEN、Jenkins 3、&nbsp;熟悉Nginx、tomca...
2020年,冯唐49岁:我给20、30岁IT职场年轻人的建议
点击“技术领导力”关注∆每天早上8:30推送 作者|Mr.K 编辑| Emma 来源|技术领导力(ID:jishulingdaoli) 前天的推文《冯唐:职场人35岁以后,方法论比经验重要》,收到了不少读者的反馈,觉得挺受启发。其实,冯唐写了不少关于职场方面的文章,都挺不错的。可惜大家只记住了“春风十里不如你”、“如何避免成为油腻腻的中年人”等不那么正经的文章。 本文整理了冯...
程序员该看的几部电影
1、骇客帝国(1999) 概念:在线/离线,递归,循环,矩阵等 剧情简介: 不久的将来,网络黑客尼奥对这个看似正常的现实世界产生了怀疑。 他结识了黑客崔妮蒂,并见到了黑客组织的首领墨菲斯。 墨菲斯告诉他,现实世界其实是由一个名叫“母体”的计算机人工智能系统控制,人们就像他们饲养的动物,没有自由和思想,而尼奥就是能够拯救人类的救世主。 可是,救赎之路从来都不会一帆风顺,到底哪里才是真实的世界?如何...
蓝桥杯知识点汇总:基础知识和常用算法
文章目录基础语法部分:算法竞赛常用API:算法部分数据结构部分 此系列包含蓝桥杯绝大部分所考察的知识点,以及真题题解~ 基础语法部分: 备战蓝桥杯java(一):一般输入输出 和 快速输入输(BufferedReader&amp;BufferedWrite) 备战蓝桥杯java(二):java编程规范和常用数据类型 备战蓝桥杯java(三):常用功能符以及循环结构和分支结构 备战蓝桥杯java(四...
作为一个程序员,CPU的这些硬核知识你必须会!
CPU对每个程序员来说,是个既熟悉又陌生的东西? 如果你只知道CPU是中央处理器的话,那可能对你并没有什么用,那么作为程序员的我们,必须要搞懂的就是CPU这家伙是如何运行的,尤其要搞懂它里面的寄存器是怎么一回事,因为这将让你从底层明白程序的运行机制。 随我一起,来好好认识下CPU这货吧 把CPU掰开来看 对于CPU来说,我们首先就要搞明白它是怎么回事,也就是它的内部构造,当然,CPU那么牛的一个东...
@程序员,如何花式构建线程?
作者 |曾建责编 | 郭芮出品 | CSDN(ID:CSDNnews)在项目和业务的开发中,我们难免要经常使用线程来进行业务处理,使用线程可以保证我们的业务在相互处理之间可以保证原子性...
破14亿,Python分析我国存在哪些人口危机!
一、背景 二、爬取数据 三、数据分析 1、总人口 2、男女人口比例 3、人口城镇化 4、人口增长率 5、人口老化(抚养比) 6、各省人口 7、世界人口 四、遇到的问题 遇到的问题 1、数据分页,需要获取从1949-2018年数据,观察到有近20年参数:LAST20,由此推测获取近70年的参数可设置为:LAST70 2、2019年数据没有放上去,可以手动添加上去 3、将数据进行 行列转换 4、列名...
实现简单的轮播图(单张图片、多张图片)
前言 刚学js没多久,这篇博客就当做记录了,以后还会完善的,希望大佬们多多指点。ps:下面出现的都是直接闪动,没有滑动效果的轮播图。 单张图片的替换 · ...
强烈推荐10本程序员在家读的书
很遗憾,这个春节注定是刻骨铭心的,新型冠状病毒让每个人的神经都是紧绷的。那些处在武汉的白衣天使们,尤其值得我们的尊敬。而我们这些窝在家里的程序员,能不外出就不外出,就是对社会做出的最大的贡献。 有些读者私下问我,窝了几天,有点颓丧,能否推荐几本书在家里看看。我花了一天的时间,挑选了 10 本我最喜欢的书,你可以挑选感兴趣的来读一读。读书不仅可以平复恐惧的压力,还可以对未来充满希望,毕竟苦难终将会...
Linux自学篇——linux命令英文全称及解释
man: Manual 意思是手册,可以用这个命令查询其他命令的用法。 pwd:Print working directory 意思是密码。 su:Swith user 切换用户,切换到root用户 cd:Change directory 切换目录 ls:List files 列出目录下的文件 ps:Process Status 进程状态 mkdir:Make directory ...
Python实战:抓肺炎疫情实时数据,画2019-nCoV疫情地图
今天,群里白垩老师问如何用python画武汉肺炎疫情地图。白垩老师是研究海洋生态与地球生物的学者,国家重点实验室成员,于不惑之年学习python,实为我等学习楷模。先前我并没有关注武汉肺炎的具体数据,也没有画过类似的数据分布图。于是就拿了两个小时,专门研究了一下,遂成此文。
疫情数据接口api
返回json示例 { "errcode":0,//0标识接口正常 "data":{ "date":"2020-01-30 07:47:23",//实时更新时间 "diagnosed":7736,//确诊人数 "suspect":12167,//疑是病例人数 "death":170,//死亡人数 "cur...
智力题(程序员面试经典)
NO.1  有20瓶药丸,其中19瓶装有1克/粒的药丸,余下一瓶装有1.1克/粒的药丸。给你一台称重精准的天平,怎么找出比较重的那瓶药丸?天平只能用一次。 解法 有时候,严格的限制条件有可能反倒是解题的线索。在这个问题中,限制条件是天平只能用一次。 因为天平只能用一次,我们也得以知道一个有趣的事实:一次必须同时称很多药丸,其实更准确地说,是必须从19瓶拿出药丸进行称重。否则,如果跳过两瓶或更多瓶药...
Java与Python学习通法(1)和(2)序言和编程语言发展史怎么学
dd
注定不平凡的2020年
1 现在是2020年1月31号,农历正月初七,1月的最后一天。 原本是今天开工上班,但是由于新型肺炎的影响, 目前还蜗居在家里,不敢出门。推迟到正月十六才正式开工,但是即便到了公司,也不可能立马就能干活。 所以,之前的一切工作计划,终于还是打乱了。 2 这是上班以来最长的一个春节假期,但也是最无聊的一个假期,谁都想不到,竟然是以这种方式延长了这个特殊的节假日。 每天打开电视,滚动的新闻播报病情; ...
疫情防控,开发者集结出战!
作者 | 屠敏出品 | CSDN(ID:CSDNnews)2020 年伊始,病毒肆虐,人心惶惶。截止北京时间 1 月 31 日 15 时 30 分,全国确诊新型冠状病毒肺炎的数字已达到了...
面试官问你MyBatis SQL是如何执行的?把这篇文章甩给他
初识 MyBatis MyBatis 是第一个支持自定义 SQL、存储过程和高级映射的类持久框架。MyBatis 消除了大部分 JDBC 的样板代码、手动设置参数以及检索结果。MyBatis 能够支持简单的 XML 和注解配置规则。使 Map 接口和 POJO 类映射到数据库字段和记录。 MyBatis 的特点 那么 MyBatis 具有什么特点呢?或许我们可以从如下几个方面来描述 MyBati...
程序员回家过年,外婆说没带女朋友别回来了?喝了老爸89年的酒,当场反目。
点赞再看,养成习惯,微信搜索【三太子敖丙】关注这个被微信官方推荐过的逗比 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试点思维导图,也整理了很多我的文档,欢迎Star和完善,大家面试可以参照考点系统复习,希望我们一起有点东西。 注:本文是水日常的文章,不是技术文,看技术的同学可以右划了。 今天是除夕,帅丙也不水太多东西了,先祝大家...
在家远程办公效率低?那你一定要收好这个「在家办公」神器!
相信大家都已经收到国务院延长春节假期的消息,接下来,在家远程办公可能将会持续一段时间。 但是问题来了。远程办公不是人在电脑前就当坐班了,相反,对于沟通效率,文件协作,以及信息安全都有着极高的要求。有着非常多的挑战,比如: 1在异地互相不见面的会议上,如何提高沟通效率? 2文件之间的来往反馈如何做到及时性?如何保证信息安全? 3如何规划安排每天工作,以及如何进行成果验收? ...... ...
作为一个程序员,内存和磁盘的这些事情,你不得不知道啊!!!
截止目前,我已经分享了如下几篇文章: 一个程序在计算机中是如何运行的?超级干货!!! 作为一个程序员,CPU的这些硬核知识你必须会! 作为一个程序员,内存的这些硬核知识你必须懂! 这些知识可以说是我们之前都不太重视的基础知识,可能大家在上大学的时候都学习过了,但是嘞,当时由于老师讲解的没那么有趣,又加上这些知识本身就比较枯燥,所以嘞,大家当初几乎等于没学。 再说啦,学习这些,也看不出来有什么用啊!...
别低估自己的直觉,也别高估自己的智商
所有群全部吵翻天,朋友圈全部沦陷,公众号疯狂转发。这两周没怎么发原创,只发新闻,可能有人注意到了。我不是懒,是文章写了却没发,因为大家的关注力始终在这次的疫情上面,发了也没人看。当然,我...
作为程序员你是考虑在家办公还是回程复工
前言最近“新冠肺炎疫情”暴发期,相信很多同学跟我一样无法按时返程上班。可能马上需要在家办公一段时间了。根据我这几天的亲身经历来讲述一下供你参考。最佳选择最佳选择就是在家中远程办公。减少人...
相关热词 c# 压缩图片好麻烦 c#计算数组中的平均值 c#获取路由参数 c#日期精确到分钟 c#自定义异常必须继承 c#查表并返回值 c# 动态 表达式树 c# 监控方法耗时 c# listbox c#chart显示滚动条
立即提问